it-swarm.com.de

Senden von E-Mails aus der Batch-Datei

Wir haben ein Skript zum Sichern von Dateien. Nach Abschluss des Sicherungsvorgangs möchten wir einen Bericht als E-Mail-Benachrichtigung an einige unserer E-Mail-Adressen senden.

Wie könnte das gemacht werden?

47
user73628

Blat :

blat -to [email protected] -server smtp.example.com -f [email protected] -subject "subject" -body "body"
36
Colin Pickard

Sie können auch ein Powershell-Skript verwenden:

$smtp = new-object Net.Mail.SmtpClient("mail.example.com")

if( $Env:SmtpUseCredentials -eq "true" ) {
    $credentials = new-object Net.NetworkCredential("username","password")
    $smtp.Credentials = $credentials
}
$objMailMessage = New-Object System.Net.Mail.MailMessage
$objMailMessage.From = "[email protected]"
$objMailMessage.To.Add("[email protected]")
$objMailMessage.Subject = "eMail subject Notification"
$objMailMessage.Body = "Hello world!"

$smtp.send($objMailMessage)
20

PowerShell wird mit einem integrierten Befehl geliefert . So läuft direkt von einem .bat Datei:

powershell -ExecutionPolicy ByPass -Command Send-MailMessage ^
    -SmtpServer server.address.name ^
    -To [email protected] ^
    -From [email protected] ^
    -Subject Testing ^
    -Body 123

[~ # ~] nb [~ # ~] -ExecutionPolicy ByPass wird nur benötigt, wenn Sie keine Berechtigungen zum Ausführen von PS über CMD eingerichtet haben

Auch für diejenigen, die es aus der Powershell heraus aufrufen möchten, legen Sie alles ab, bevor -Command [einschließlich] und ` wird dein Escape-Charakter sein (nicht ^)

11
Hashbrown

bmail . Installieren Sie einfach die EXE-Datei und führen Sie eine Zeile wie die folgende aus:

bmail -s myMailServer -f [email protected] -t [email protected] -a "Production Release Performed"
8
RossFabricant

Am einfachsten ist es, eine Drittanbieteranwendung zu verwenden, wie von anderen erwähnt

Wenn das keine Option ist, habe ich ein einfaches sendmail-Dienstprogramm mit vbscript & CDO geschrieben, das ich über ein Batch-Skript aufgerufen habe

Beispiele finden Sie hier http://www.paulsadowski.com/WSH/cdo.htm

5
laurie

Sie können auch sendmail verwenden. Ich verwende es in diesem Subversion-Hook, um E-Mail-Benachrichtigungen zu senden: Post-Commit-Hook

3

Wir machen das die ganze Zeit in unserer Umgebung mit blat. Ich benutze es auch, um mit Stunnel eine Verbindung zu Google Mail herzustellen. Hier sind die Parameter, um eine Datei zu senden

blat -to [email protected] -server smtp.example.com -f [email protected] -subject "subject" -body "body" -attach c:\temp\file.txt

Oder Sie können diese Datei als Text einfügen

blat c:\temp\file.txt -to [email protected] -server smtp.example.com -f [email protected] -subject "subject"
3
Keng

Es gibt mehrere Methoden zur Behandlung dieses Problems.

Mein Rat ist, die leistungsfähige Windows-Freeware-Konsolenanwendung zu verwenden SendEmail .

sendEmail.exe -f [email protected] -o message-file=body.txt -u subject message -t [email protected] -a attachment.Zip -s smtp.gmail.com:446 -xu gmail.login -xp gmail.password
1