Отправка электронной почты нескольким получателям с использованием REST API и powershell - PullRequest
0 голосов
/ 10 мая 2018

Я использую следующее для отправки одному получателю и одному получателю Cc. Как отправить нескольким получателям в To: и / или Cc:? Спасибо! Я перепробовал все различные комбинации, но он все еще не работает (все еще получая, как будто это не удивительно, обычный Invoke-RestMethod: удаленный сервер возвратил ошибку: (400) Bad Request.)

[CmdletBinding()]
 param(
 [Parameter(Mandatory=$True,
 ValueFromPipeline=$True,
 HelpMessage="Email Address e.g man1@whatever.com")]
  [Alias('Email')]
$Subject,
$Content)

UserName = "myUPN@mywork.com"
$Password = cat C:\Creds\mycreds.txt | convertto-securestring
$cred = new-object -typename System.Management.Automation.PSCredential - 
argumentlist $username,$password

$contentType = "application/json;odata.metadata=full"
$uri = "https://outlook.office365.com/api/v1.0/me/sendmail"
$body = "{
          ""Message"":{
           ""Subject"": ""$Subject"",
           ""Importance"": ""High"",
           ""Body"": {
           ""ContentType"": ""HTML"",
           ""Content"": ""$Content""
           },
           ""ToRecipients"": [
           {
           ""EmailAddress"":{
            ""Address"": ""man1@whateverdomain.com""
          }

           }
           ],
       ""CcRecipients"": [
           {
           ""EmailAddress"":{
            ""Address"": ""man2@whateverdomain.com""
          }

           }
           ]

           }}"


     Invoke-RestMethod -Uri $uri -Method Post -Credential $cred`
     -Body $Body -ContentType $contentType

1 Ответ

0 голосов
/ 11 мая 2018

Вы можете указать CC с массивом для подачи в

 [CmdletBinding()]
              param(
                  [Parameter(Mandatory=$True,
                             ValueFromPipeline=$True,
                             HelpMessage="Email Address e.g man.man@domain.com")]

                  [Alias('Email')]
                  $EmailAddress,
                  $CCEmailAddress,
          $Subject,
          $Content)

          $UserName = "man.man@domain.com"
          $Password = cat C:\Creds\regcreds.txt | convertto-securestring
          $cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $username,$password

          $CCinJSON = $CCEmailAddress | %{'{"EmailAddress": {"Address": "'+$_+'"}},'}
          $CCinJSON = ([string]$CCinJSON).Substring(0, ([string]$CCinJSON).Length - 1)

          $contentType = "application/json;odata.metadata=full"
           $uri = "https://outlook.office365.com/api/v1.0/me/sendmail"
           $body = "{
          ""Message"":{
           ""Subject"": ""$Subject"",
           ""Importance"": ""High"",
           ""Body"": {
           ""ContentType"": ""HTML"",
           ""Content"": ""$Content""
           },
           ""ToRecipients"": [
           {
           ""EmailAddress"":{
            ""Address"": ""$EmailAddress""
            }
           }
           ],
           ""CcRecipients"": [
            $CCinJSON
           ]
           }}"

           echo $body
           Invoke-RestMethod -Uri $uri -Method Post -Credential $cred -Body $Body -ContentType $contentType
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...