如何将投票按钮限制为“收件人”地址,而不是通过Powershell发送到outlook中的“抄送”


How to restrict voting button to 'To' address and not send to 'Cc' in outlook via powershell?

Powershell Script[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()

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);
  ?>

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

现在我想使用投票按钮来批准或拒绝触发到电子邮件地址的休假。我希望投票按钮仅发送到用户名1,即"收件人"地址,而不是"抄送"地址。我想通过Powershell实现这一点。

由于投票按钮(=有关投票内容的信息)是邮件的一部分,就像文本和主题一样,因此不可能只使它们对某些收件人可见。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()

为了向收件人澄清问题,您可以在邮件中添加文本,说明此邮件也发送给$username