Der einfachste Weg, eine E-Mail über die Befehlszeile mit Windows 2003 R2 zu senden

11

Ich habe einen Windows 2003 R2-Server und möchte eine E-Mail über die Befehlszeile senden. Auf diesem Server ist der SMTP-Dienst nicht konfiguriert. Gibt es einen Einzeiler, mit dem ich eine E-Mail senden kann? Mein spezieller Anwendungsfall im Moment ist das Senden einer E-Mail, wenn eine Leistungswarnung ausgelöst wird, aber dies wäre im Allgemeinen nützlich.

Ich hoffe auf so etwas

foomail -t [email protected] -f [email protected] -m "Alert!  the sky is falling"

Update: Ich würde eine Lösung bevorzugen, bei der keine Software von Drittanbietern installiert wird.

Peter
quelle
Dienstprogramme wie blat und sendemail müssen nicht installiert werden. Sie sind beide freistehende Exe-Dateien.
John Gardeniers
Ich muss wohl akzeptieren, dass ich mindestens eine Exe (entweder Blat oder Powershell) auf jede Maschine kopieren muss. Wenn dies der Fall ist, ist blat sehr einfach zu bedienen. Vielen Dank. Ich frage mich immer noch, warum MS diese Funktion ausgelassen hat, wenn man bedenkt, wie viele andere weniger nützliche Funktionen in die Standarddistribution aufgenommen wurden.
Peter

Antworten:

15

Ich würde versuchen , blat . Sie könnten ein vbscript schreiben, aber es gibt keine eingebaute ausführbare Datei zum Senden von E-Mails

Jim B.
quelle
Seconding Blat. Es kann etwas wählerisch sein, Parameter direkt über die Befehlszeile zu übergeben, aber sobald Sie es geschafft haben, tun Sie genau das, was das OP benötigt.
Chris Thorpe
Ich benutze Blat seit Jahren mit großem Erfolg. Wenn ich jedoch in Powershell schreiben würde, würde ich wechseln.
uSlackr
Kann blat unter Windows als Sendepostpfad für PHP fungieren?
SaidbakR
14

Würden Sie Powershell anstelle von cmd.exe in Betracht ziehen? In diesem Fall ist das Senden von E-Mails integriert:

$SmtpClient = New-Object System.Net.Mail.SmtpClient
$SmtpServer = "your.mail.host.com"
$SmtpClient.host = $SmtpServer 

$From = "Me <[email protected]>"
$To = [email protected]
$Title = "Subject"
$Body = "Body Text" 
$SmtpClient.Send($From,$To,$Title,$Body)  

Speichern Sie Folgendes in einer Powershell-Skriptdatei (sendmail.ps1), um einen Einzeiler zu erstellen:

   param(  
        [string] $From = "[email protected]",
        [string] $To = "[email protected]",
        [string] $Title = "title",
        [string] $Body = "body"
    )
    $SmtpClient = New-Object System.Net.Mail.SmtpClient
    $SmtpServer = "your.mail.host.com"
    $SmtpClient.host = $SmtpServer 
    $SmtpClient.Send($From,$To,$Title,$Body)

(Stellen Sie sicher, dass Sie den SMTP-Server so ändern, dass er Ihr echter ist.)

Dann können Sie es aufrufen mit:

powershell.exe c:\path\to\sendmail.ps1 "[email protected]" "[email protected]" "title" "body"
MattB
quelle
1
Powershell müsste auch installiert werden, sonst hätte ich es vbscript vorgezogen.
Jim B
Gute Antwort. Nur eine kleine Änderung, die Argumente müssen einfache Anführungszeichen sein.
Brain2000
6

Ich habe bmail in der Vergangenheit mit großem Erfolg verwendet.

Nutzung (von der Website kopiert)

C:\>bmail /?

    Command Line SMTP Emailer V1.07
    Copyright(C) 2002-2004 [email protected]
    Usage: bmail [options]
            -s    SMTP Server Name
            -p    SMTP Port Number (optional, defaults to 25)
            -t    To: Address
            -f    From: Address
            -b    Text Body of Message (optional)
            -h    Generate Headers
            -a    Subject (optional)
            -m    Filename (optional) Use file as Body of Message
                -c    Prefix above file with CR/LF to separate body from header
                -d    Debug (Show all mail server communications)
Zypher
quelle
1
Ich muss zugeben, ich hatte auf eine eingebaute Lösung gehofft, obwohl Jims Antwort zu implizieren scheint, dass das ein bisschen naiv von mir war ...
Peter
2

Probieren Sie den kostenlosen Mail Alert Simple Mailer aus: https://sourceforge.net/projects/mail-alert/

Es unterstützt SSL / TLS-Mailserver wie Google Mail und ist einfach zu konfigurieren.

Administrator
quelle
Es unterstützt auch SSL.
Roland Pihlakas
0

Noch ein Kommandozeilen-Mailer-Programm:

Es unterstützt auch SSL.

Roland Pihlakas
quelle
0
sendEmail -f %from_address% -t %to_address% -u "Subject Line" -m "Message" -s %smtp_server%

Das einfachste Win-Dienstprogramm, das ich in der Produktionsumgebung gefunden und verwendet habe. Eigenständige ausführbare Datei ohne Installation oder vorgeschriebene Konfiguration. Unterstützt sowohl Nicht-TLS als auch TLS. Und hat einen Debugger, der manchmal hilfreich ist.

http://caspian.dotconf.net/menu/Software/SendEmail/#download

Zugriff gewährt
quelle