如何通过powershell将投票按钮限制为"收件人"地址,而不是发送到Outlook中的"抄送"?

Roc*_*cky 5 php email powershell outlook powershell-2.0

Powershell脚本[script1.ps1] - :

param(
[string]$username,
[string]$username1,
)

$Outlook = New-Object -ComObject Outlook.Application
$Mail = $Outlook.CreateItem(0)

$Mail.To = "$username1"
$Mail.Cc = "$username"
$Mail.Subject = "SUBJECT"
$Mail.Body = "--content--"


$mail.VotingOptions = "Approve;Reject"

$Mail.Send()
Run Code Online (Sandbox Code Playgroud)

PHP代码 - :

<?php
  $connection = oci_connect("username","password","db_name");
  $lname = $_SESSION['lead_name'];
  $main_query=oci_parse($connection,"SELECT * FROM TABLE WHERE FIELD= '$lname'");
  oci_execute($main_query,OCI_DEFAULT);
  while($res = oci_fetch_array($main_query)) 
      {
        $mail= $res['USERNAME'];        
      } 
      $_SESSION['mail_id']=$mail;
      $cc = $_SESSION['mail'];

      $username = $cc;
      $username1 = $_SESSION['mail_id'];

    $psScriptPath = "C:\\xampp\\htdocs\\Website_LMS\\Powershell\\script1.ps1";
    $query = shell_exec("powershell -command $psScriptPath -username '$username'< NUL -username1 '$username1'< NUL");
      oci_close($connection);
  ?>
Run Code Online (Sandbox Code Playgroud)

Powershell脚本用于向outlook发送电子邮件.所有这些参数username,username1都是通过shell exec命令从php脚本发送的.这两个是电子邮件地址.

现在我想使用投票按钮来批准或拒绝一个由所提到的电子邮件地址触发的请假.我希望投票按钮仅发送到username1,即"To"地址而不是"cc"地址.我想通过PowerShell实现这一点.

Mar*_*arc 2

由于投票按钮(= 有关投票内容的信息)是邮件的一部分,如文本和主题,因此不可能仅让某些收件人看到它们。Outlook(或者更好的是服务器,很可能是 Exchange)将向所有收件人发送完全相同的电子邮件,无论他们是否通过ToCc或发送Bcc

这是设计使然,如RFC2822(互联网消息格式)中所述:

目的地字段指定消息的接收者。每个目的地字段可以具有一个或多个地址,并且每个地址指示消息的预期接收者。 这三个字段之间的唯一区别在于每个字段的使用方式。

您可以简单地发送两封内容相同的邮件,但按钮除外:

param(
[string]$username,
[string]$username1,
)

$Outlook = New-Object -ComObject Outlook.Application
$Mail1 = $Outlook.CreateItem(0)
$Mail2 = $Outlook.CreateItem(0)

$Mail1.To = "$username1"
$Mail2.To = "$username"
$Mail1.Subject = "SUBJECT"
$Mail1.Body = "--content--"
$Mail2.Subject = "SUBJECT"
$Mail2.Body = "--content--"


$mail1.VotingOptions = "Approve;Reject"

$Mail1.Send()
$Mail2.Send()
Run Code Online (Sandbox Code Playgroud)

为了让收件人清楚,您可以在邮件中添加文本,说明此邮件也发送到$username