E-Mail über CMD versenden
Hallo Leute!
Ich möchte gerne am z.B. am Anfang und am Ende eines CMD-Scripts einen Befehl einfügen, der mir eine Benachrichtigung an mein Handy schickt. Um mir zu bestätigen, dass das Programm gestartet/erfolgreich beendet wurde.
Um es nicht zu kompliziert zu machen, hatte ich die Idee einfach eine E-Mail verschicken zu lassen aber bekomme leider eine Fehlermeldung. (Falls ihr noch eine coolere Methode kennt, eine Notification per CMD ans Handy zu schicken, könnt ihr diese gerne vorschlagen!!!)
Ich bekomme immer diese Fehlermeldung:
Das Script zur E-Mail Versendung im CMD sieht aktuell so aus:
Ich muss aber auch zugeben, dass das Script ursprünglich nicht von mir stammt und ich auch nicht wirklich weiß, was dieses "set FROM=Powershell%computername%" soll und ob ich da wirklich meinen Computernamen reinschreiben muss?
Mir währe es wichtig, dass das ganze innerhalb von CMD funktioniert, damit ich nicht noch ein neues externes Programm ansteuern muss (außer ihr sagt, dass das sinnvoller wäre).
Ich wäre für eure Hilfe wirklich sehr dankbar!
Ich möchte gerne am z.B. am Anfang und am Ende eines CMD-Scripts einen Befehl einfügen, der mir eine Benachrichtigung an mein Handy schickt. Um mir zu bestätigen, dass das Programm gestartet/erfolgreich beendet wurde.
Um es nicht zu kompliziert zu machen, hatte ich die Idee einfach eine E-Mail verschicken zu lassen aber bekomme leider eine Fehlermeldung. (Falls ihr noch eine coolere Methode kennt, eine Notification per CMD ans Handy zu schicken, könnt ihr diese gerne vorschlagen!!!)
Ich bekomme immer diese Fehlermeldung:
"Send-MailMessage : Die angegebene Zeichenfolge besitzt nicht das für eine E-Mail-Adresse erforderliche Format.
In Zeile:1 Zeichen:1
Send-MailMessage -To 'info@testmail.com' -Subject 'Testmailing' -Bod ...
~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidType: (Powershell:String) [Send-MailMessage], FormatException
+ FullyQualifiedErrorId : FormatException,Microsoft.PowerShell.Commands.SendMailMessage"
Das Script zur E-Mail Versendung im CMD sieht aktuell so aus:
@echo off
set SMTP=Server.Name.com
set SUBJECT=Testmailing
set BODY=Was ist der Body eigentlich
set FROM=Powershell%computername%
set TO=info@testmail.com
echo Dies ist eine nicht funktionierende Testmail
powershell -ExecutionPolicy Unrestricted -c "Send-MailMessage -To '%TO%' -Subject '%SUBJECT%' -Body '%BODY%' -SmtpServer '%SMTP%' -From '%FROM%'"
Ich muss aber auch zugeben, dass das Script ursprünglich nicht von mir stammt und ich auch nicht wirklich weiß, was dieses "set FROM=Powershell%computername%" soll und ob ich da wirklich meinen Computernamen reinschreiben muss?
Mir währe es wichtig, dass das ganze innerhalb von CMD funktioniert, damit ich nicht noch ein neues externes Programm ansteuern muss (außer ihr sagt, dass das sinnvoller wäre).
Ich wäre für eure Hilfe wirklich sehr dankbar!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Kommentar vom Moderator Dani am 05.02.2024 um 21:21:32 Uhr
Formatierungen überarbeitet.
Content-ID: 32965418949
Url: https://administrator.de/contentid/32965418949
Ausgedruckt am: 24.11.2024 um 22:11 Uhr
11 Kommentare
Neuester Kommentar
Hallo.
https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell ...
versus
Steffen
https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell ...
The From parameter is required. This parameter specifies the sender's email address.
versus
Die angegebene Zeichenfolge besitzt nicht das für eine E-Mail-Adresse erforderliche Format.
undset FROM=Powershell%computername%
Steffen
Ob du es per Powershell oder über Batch bzw Kommandozeile machst wird beides wenig daran ändern, dass der empfangene Mailserver deine eMail ablehnt
Manuel
5.7.1 Recipient address rejected: Mail appeared to be SPAM or forged. Ask your Mail/DNS-Administrator to correct HELO and DNS MX settings or to get removed from DNSBLs
Manuel
Zitat von @MeisterKungLao:
Leider bekomme ich nur jetzt eine andere Fehlermeldung:
Send-MailMessage : Postfach nicht verfügbar. Die Serverantwort war: 5.7.1 <hier steht die empfänger email>: Recipient address rejected: Mail appeared to be SPAM or forged. Ask your Mail/DNS-Administrator to correct HELO and DNS MX settings or to
get removed from DNSBLs; MTA helo: der Pc name, MTA hostname: irgendeine ip.dynamic.kabel-deutschland.de[irgendeine IP Adresse] (helo/hostname mismatch)
In Zeile:1 Zeichen:1
Send-MailMessage -To 'hier steht die empfänger email' -Subject 'Testmailing' -Bod ...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.Mail.SmtpClient:SmtpClient) [Send-MailMessage], SmtpFailedRecipientException
+ FullyQualifiedErrorId : SmtpException,Microsoft.PowerShell.Commands.SendMailMessage
Dies deutet darauf hin, dass der genutzte Internetzugang unzureichend für den direkten E-Mail Versand konfiguriert ist.
Nutze das zur Domain gehörende SMTP Relay.
$smtp_server = "dein.server.de"
$from = "absender@dein-server.de"
$to1 = "empfänger@dein-server.de"
$subject = "Dein Betreff"
$body = "Mailinhalt"
Send-MailMessage -From $from -To $to1 -Subject $subject -Body $body -Priority High -DeliveryNotificationOption OnSuccess, OnFailure -SmtpServer $smtp_server -encoding ([System.Text.Encoding]::UTF8)
hier mal ein Auszug aus meinem Skript, vielleicht hilft es dir weiter...