none
E-Mailversand über Powershell RRS feed

  • Frage

  • Hallo ich habe folgendes Script welches ich an verschiedenen Servern ausführen möchte in der Aufgabenplanung um Mails zu versenden sollte der Server Fehler im Ereignisprotokoll erzeugen bezüglich Windowsserversicherung.

    $event = get-eventlog -LogName Application -newest 1

    #Passwort wird lokal verschlüsselt abgelegt mit diesem Befehl
    #Read-Host -AsSecureString | ConvertFrom-SecureString | Out-File -FilePath username@domain.net.securestring
     
    # "Error" - send only error
    if ($event.EntryType -eq "Error")
    {
        $PCName = $env:COMPUTERNAME
        $EmailBody = $event | format-list -property * | out-string
        $EmailFrom = "$PCName <server@domain.de>"
        $EmailTo = "backup@domain.de" 
        $EmailSubject = "New Event Log [Application]"
        $SMTPServer = "smtp.office365.com"
        $SMTPUsername = "user@domain.onmicrosoft.com"
        $EncryptedPasswordFile = "office365.securestring"
        $SecureStringPassword = Get-Content -Path $EncryptedPasswordFile | ConvertTo-SecureString
        $EmailCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList  $SMTPUsername,$SecureStringPassword
        Write-host "Sending Email"
        Send-MailMessage -From $EmailFrom -To $EmailTo -Subject $EmailSubject -body $EmailBody -SmtpServer $SMTPServer  -UseSsl -Port 587 -Credential (New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList "username@domain.onmicrosoft.com",(Get-Content -Path office365.securestring | ConvertTo-SecureString))
    }
    else
    {
        write-host "No error found"
        write-host "Here is the log entry that was inspected:"
        $event
    }

    Dabei bekomme ich diese Fehlermeldung: 

    Sending Email
    Send-MailMessage : Postfach nicht verfügbar. Die Serverantwort war: 5.7.60 SMTP; Client does not have permissions to send as this sender [AM5PR0602MB2865.eurprd06.prod.outlook.com]
    In C:\Users\user\Desktop\mail script.ps1:28 Zeichen:5
    +     Send-MailMessage -From $EmailFrom -To $EmailTo -Subject $EmailSub ...
    +     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidOperation: (System.Net.Mail.SmtpClient:SmtpClient) [Send-MailMessage], SmtpException
        + FullyQualifiedErrorId : SmtpException,Microsoft.PowerShell.Commands.SendMailMessage

    Mittwoch, 6. Dezember 2017 10:47

Antworten

  • Hallo, die Fehlermeldung sagt doch schon alles aus:

    5.7.60 SMTP; Client does not have permissions to send as this sender

    Dein verwendeter User $SMTPUsername hat nicht die Berechtigung als der Absender in $EmailFrom eine Mail zu versenden. Hinterlege am Postfach in Exchange Online einfach diese Mailadresse als Alias oder - wenn der Absender tatsächlich in Deinem Tenant existiert - hinterlege in den SendAs-Berechtigungen den Benutzer aus $SMTPUsername.


    Freundliche Grüße

    Sandro
    MCSA: Windows Server 2012

    Consultant Cloud Infrastructure
    Microsoft Azure

    Mittwoch, 6. Dezember 2017 11:03