Jump to content

Send-MailMessage cmdlet per Aufgabenplanung: Fehlermeldung


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

**********************
PS>CommandInvocation(Out-String): "Out-String"
>> ParameterBinding(Out-String): Name="InputObject"; Wert="Postfach nicht verfügbar. Die Serverantwort war: 5.7.60 SMTP; Client does not have permissions to send as this sender"
Send-Mailmessage : Postfach nicht verfügbar. Die Serverantwort war: 5.7.60 SMTP; Client does not have permissions to send as this sender

In C:\Ordner\Skripts\Passwort-Ablauf-Mail.ps1:96 Zeichen:1
+ Send-Mailmessage -smtpServer $smtpServer -from $from -to $emailaddres ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (System.Net.Mail.SmtpClient:SmtpClient) [Send-MailMessage], 
SmtpException
    + FullyQualifiedErrorId : SmtpException,Microsoft.PowerShell.Commands.SendMailMessage
Send-Mailmessage : Postfach nicht verfügbar. Die Serverantwort war: 5.7.60 SMTP; Client does not have permissions to send as this sender
In C:\Ordner\Skripts\Passwort-Ablauf-Mail.ps1:96 Zeichen:1
+ Send-Mailmessage -smtpServer $smtpServer -from $from -to $emailaddres ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (System.Net.Mail.SmtpClient:SmtpClient) [Send-MailMessage], 
SmtpException
    + FullyQualifiedErrorId : SmtpException,Microsoft.PowerShell.Commands.SendMailMessage
Send-Mailmessage : Postfach nicht verfügbar. Die Serverantwort war: 5.7.60 SMTP; Client does not have permissions to send as this sender
In C:\Ordner\Skripts\Passwort-Ablauf-Mail.ps1:96 Zeichen:1
+ Send-Mailmessage -smtpServer $smtpServer -from $from -to $emailaddres ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (System.Net.Mail.SmtpClient:SmtpClient) [Send-Mai
   lMessage], SmtpException
    + FullyQualifiedErrorId : SmtpException,Microsoft.PowerShell.Commands.SendMailMessage

**********************

Weise ich dem oben genannten AD User SMTP@unsereFirma.ch die Berechtigung "Senden als" zu, so müsste man doch nun annehmen, dass der Mailversand der Aufgabenplanung auf dem Exchange Server, welche eben mit dem User Domain\smtp ausgeführt wird (und mit höchsten Privilegien ist auch angekreuzt), funktioniert?

 

Die PowerShell Überwachung, welche ich zu Analyse Zwecken aktiviert habe, teilt mir nach wie vor die gleiche Fehlermeldung mit wie oben im LOG zu sehen:

"Die Serverantwort war: 5.7.60 SMTP; Client does not have permissions to send as this sender" Send-Mailmessage : Postfach nicht verfügbar. Die Serverantwort war: 5.7.60 SMTP; Client does not have permissions to send as this sender"

 

Weitere Infos zur Aufgabenplanung bzw. zum Mailversand

- Das Info Mail, welches an die User*innen versendet werden soll mit der Erinnerung, dass Ihr AD Passwort in xy Tagen abläuft, verwende als Absender Mailadresse Support@unsereFirma.ch Und: Dieses Postfach existiert und funktioniert.

Auf diesem erhalten wir unsere Support Fälle von unseren User*innen geschildert.

- In der Aufgabenplanung auf dem Exchange habe ich als User den AD User SMTP verwendet, weil dieser bereits existiert hat in unserem AD und für ähnliche Szenarios (Drucker Meldungen Versand etc.) schon verwendet wird.

Link zu diesem Kommentar
vor 37 Minuten schrieb testperson:

Hi,

 

hier wäre der Code bzw. die "Send-MailMessage" Zeile interessant. Ich vermute, du landest (per Default) auf Port 25 und nicht auf dem Client SMTP Port 587.

 

Gruß

Jan

 

Ok, das könnte sein, ja.

Wie ist denn hier die Reihenfolge, welcher Connector verwendet werden soll bzw. welcher SMTP Port? 

 

wie kann ich darauf Einfluss nehmen?

 

Zur Deiner Frage, hier ist die Code Zeile: 

 

# Send Email Message
Send-Mailmessage -smtpServer $smtpServer -from $from -to $emailaddress -subject $subject -body $body -bodyasHTML -priority High -Encoding $textEncoding
} # End Send Message

 

$smtpServer="192.168.x.z" #IP mail server

$from = "Support <supporty@unsereDomain.ch>"

bearbeitet von vonAbisZ
Link zu diesem Kommentar
vor 1 Minute schrieb Sunny61:

Wenn du per 587 versendest, musst Du dich authentifizieren. Wir haben schon vor längerer Zeit auf 587 umgestellt, für alle Geräte die das unterstützen. Und das sind im allgemeinen sehr viele.

 

Genau, dazu habe ich wohl ein paar Sekunden vor Dir meine Antwort bzw. auch Frage(n) formuliert. Siehe dazu den Eintrag vor deinem hier ;)

Link zu diesem Kommentar

Default mässig, wenn man keinen Port mit auf den Weg gibt, so müsste meiner Meinung nach Port 25 verwendet werden (gemäss Deinem Artikel).

Ich habe nun beide Ports getestet, Port 25 bzw. 587.

 

Das LOG der PS Überwachung bringt nach wie vor die gleiche Fehlermeldung Und: Auch erhalte ich keine Mails zu möglichen Postfächern, bei welchen demnächst das PW ablaufen würde.

 

INFO

Wenn ich auf dem Exchange z.B. das lokal, abgelegte Skript mit PS ISE öffne (PowerShell mit meinen pers. Domänen Administrator  User ausführen) funktioniert der Mailversand. Danach flattern ein paar Mails in mein Postfach von AD Usern in unserem Haus, bei welchen das PW in den nächsten 30 - 35 Tagen abläuft.

 

Insofern weiss ich auch, dass wenn ich die Aufgabenplanung eben mit dem hinterlegten AD User SMTP starte, ich eigentlich auch Mails wie soeben erwähnt, erhalten sollte - was aber NICHT geschieht Und: Dies belegt eben leider auch das LOG der PW Überwachung.

 

Diese Tatsache zeigt aber, dass es anscheinend tatsächlich ein Berechtigungsproblem in Bezug Mailversand (senden als) gibt, ich jedoch nicht verstehe, warum es dieses Problem noch immer gibt mit Betonung noch immer, da ich wie weiter oben im Blog erwähnt habe, auf der Absender Mailadresse Support@unsereDomain.ch die Berechtigung "Senden Als" für den AD User SMTP hinterlegt habe.

 

Egal, ob ich nun über Port 25 oder Port 587 (aktuell habe ich im PS Skript den Port auf 587 abgeändert) versuche, die Aufgabenplanung dazu zu bewegen, den Mailversand mit dem AD User SMTP zu versenden, klappt es nicht.

 

Security Aspekt

Ich denke auch, es wäre wohl aus Sicht der Security nicht das "gelbe vom Ei", nur damit die Aufgabenplanung endlich funktioniert, einfach meinen Dom-Admin User in der Aufgabenplanung (ausführen als) zu hinterlegen! 

bearbeitet von vonAbisZ
Link zu diesem Kommentar
Am 25.4.2022 um 13:29 schrieb vonAbisZ:

Egal, ob ich nun über Port 25 oder Port 587 (aktuell habe ich im PS Skript den Port auf 587 abgeändert) versuche, die Aufgabenplanung dazu zu bewegen, den Mailversand mit dem AD User SMTP zu versenden, klappt es nicht.

 

Wenn du Port 587 nutzen willst, musst du im Skript aber eine Authentifizierung durchführen. Ist das der Fall?

Wenn Port 25 lokal am Exchange funktioniert, spricht ja schonmal viel dafür, dass das Skript grundsätzlich in Ordnung ist. Von welchem PC/Server aus soll das Skript denn laufen, und unter welchen Credentials? Die Fehlermeldung ist an sich ja eindeutig. Der Account, unter dem das Skript läuft hat nicht die korrekten Berechtigungen. Ich würde bei der Konfiguration nicht mit Authentifizierung hantieren und einfach anonym senden (kann man ggf. ja auch per eigenem Connector auf die notwendige IP (wenns nicht der Exchange Server selbst ist) eingrenzen. Solange die Empfänger intern sind, muss der Absender nur ebenfalls eine Maildomain aus den Akzeptierten Domains haben und schon geht das.

 

Bye

Norbert

Link zu diesem Kommentar
vor 3 Stunden schrieb NorbertFe:

Wenn du Port 587 nutzen willst, musst du im Skript aber eine Authentifizierung durchführen. Ist das der Fall?

Nein, hatte keine Authentifizierung hinterlegt. Habe die Zeile dann wie folgt angepasst

Send-Mailmessage -smtpServer $smtpServer -Credential $cred -Port 587 -UseSsl -from $from -to $emailaddress -subject $subject -body $body -bodyasHTML -priority High -Encoding $textEncoding

 

Fehlermeldung: Die Serverantwort war: 5.7.60 SMTP; Client does not have permissions to send as this sender

 

vor 3 Stunden schrieb NorbertFe:

Wenn Port 25 lokal am Exchange funktioniert, spricht ja schonmal viel dafür, dass das Skript grundsätzlich in Ordnung ist.

Sehe ich auch so. Darum habe ich den Port 587 mit SSL und Authentifizierung wieder entfernt, die Zeile sieht also im Moment wieder wie folgt aus:

Send-Mailmessage -smtpServer $smtpServer -from $from -to $emailaddress -subject $subject -body $body -bodyasHTML -priority High -Encoding $textEncoding

 

vor 3 Stunden schrieb NorbertFe:

Von welchem PC/Server aus soll das Skript denn laufen, und unter welchen Credentials?

Das Skript läuft direkt auf dem Exchange Server. Ich habe lokal auf dem Exchange Server im C:\Skripts dieses PS Skript abgespeichert.

Öffne ich das Skript via PS direkt auf dem Exchange aus diesem Pfad heraus (PS wird also NICHT als Administrator ausgeführt) und starte es, so funktioniert der Versand.

 

vor 3 Stunden schrieb NorbertFe:

Der Account, unter dem das Skript läuft hat nicht die korrekten Berechtigungen.

Verwende ich für die Aufgabenplanung auf dem Exchange im Reiter Allgemein, im Abschnitt Sicherheitsoptionen: "Beim Ausführen der Aufgabe folgendes Benutzerkonto verwenden:" meinen eigenen, pers. Domänen Administrator plus diese 2 Optionen hier

- "Unabhängig vom der Benutzeranmeldung ausführen"

- Mit höchsten Berechtigungen ausführen

 

Dann funktioniert der Mailversand ebenfalls, Aber: Wenn ich anstatt meinen pers. Domänen Administrator User in der Aufgabenplanung hinterlege, den bereits, im AD vorhandenen User mit dem Namen SMTP verwende (ich musste diesem noch das Recht "Als Stapelverarbeitung ausführen erlauben"  hinterlegen), dann erhalte ich wie erwähnt, folgende Fehlermeldung: "5.7.60 SMTP; Client does not have permissions to send as this sender"

 

 

vor 3 Stunden schrieb NorbertFe:

Ich würde bei der Konfiguration nicht mit Authentifizierung hantieren und einfach anonym senden (kann man ggf. ja auch per eigenem Connector auf die notwendige IP (wenns nicht der Exchange Server selbst ist) eingrenzen. Solange die Empfänger intern sind, muss der Absender nur ebenfalls eine Maildomain aus den Akzeptierten Domains haben und schon geht das.

Ich habe als Parameter $from darum noreply@UnsereFirma.ch hinterlegt, beim Send-mailMessage cmdlet in der Zeile keinen Port mit auf den Weg gegeben, somit müsste ja nun default mässig der Port 25 verwendet werden und eben, im Skript ist auch keine Authentifizierung hinterlegt.

 

Verwendet man also im Skript als Absenderadresse eine noreply@unsereFirma.ch (diese existiert bei uns NICHT), ist die Frage, warum gibt dann der Exchange trotzdem die Fehlermeldung "5.7.60 SMTP; Client does not have permissions to send as this sender" heraus?

 

In diesem Fall kann es gar nicht an der fehlenden Berechtigung "senden als" liegen. Ich kann ja nicht eine Berechtigung senden als für ein Postfach definieren, welches auf dem Exchange gar nicht existiert.

 

Aus diesem Grund heraus dachte ich mir, ok, was passiert denn, wenn ich als Absenderadresse für die Variable $from z.B. Support@meineFirma.ch verwende, weil dieses existiert auch auf dem Exchange Postfach Und: dann für dieses die Berechtigung "senden als" aufrufen und dort meinen User angebe, welche direkt auf dem Exchange die Aufgabenplanung ausführt (eben, der AD User smtp).

 

Aber auch auf diese Weise erhalte ich genau die gleiche Fehlermeldung.

Leider bin ich also noch immer am gleichen Ort mit meinem Problem? :-(

bearbeitet von vonAbisZ
Link zu diesem Kommentar
vor 34 Minuten schrieb winmadness:

Nur ein Hinweis, ich kann auf die Schnelle nicht beurteilen ob Dein Problem das Selbe ist.

Vielen Dank für die Rückmeldung. Als ich den Post von damals öffnete und ein wenig durchgelesen habe, schien damals bei dir Die Lösung gewesen zu sein, IPv6 für den Exchange aktiviert zu lassen bzw. wenn deaktiviert, zu aktivieren.

 

Gut, ich habe dann soeben so ganz nach dem Motto: "Nützt es nichts, schadet es nichts" gehandelt und die IPv6 Adresse für den Exchange aktiviert (Default Konfiguration), hat aber das Problem auch nicht gelöst.

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...