windows - sende mail fra batch fil

Indlæg af Hanne Mølgaard Plasc

Problem



Vi har et script til sikkerhedskopiering af filer. Når backupoperationen er slut, vil vi gerne sende en rapport som en e-mail-besked til nogle af vores e-mail-adresser.


Hvordan kunne dette gøres?

Bedste reference


Blat: [13]


blat -to user@example.com -server smtp.example.com -f batch\_script@example.com -subject "subject" -body "body"

Andre referencer 1


Du kan også bruge et Power Shell-script:


$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 = "script@mycompany.com"
$objMailMessage.To.Add("you@yourcompany.com")
$objMailMessage.Subject = "eMail subject Notification"
$objMailMessage.Body = "Hello world!"

$smtp.send($objMailMessage)

Andre referencer 2


PowerShell leveres med en indbygget kommando til den. Så kører direkte fra en .bat fil: [14]


powershell -ExecutionPolicy ByPass -Command Send-MailMessage ^
    -SmtpServer server.address.name ^
    -To someone@what.ever ^
    -From noreply@possibly.fake ^
    -Subject Testing ^
    -Body 123


<<> NB -ExecutionPolicy ByPass er kun nødvendig, hvis du ikke har tilladelse til at køre PS fra CMD


Også for dem, der ønsker at kalde det fra within powerhell, slip alt før -Command [[inclusive]], og ` bliver din escape karakter (ikke ^)

Andre referencer 3


bmail. Bare installer EXE og kør en linje som denne: [15]


bmail -s myMailServer -f Sender@foo.com -t receiver@foo.com -a "Production Release Performed"

Andre referencer 4


Den nemmeste måde er at bruge en tredjeparts applikation som nævnt af andre


Hvis det ikke er en mulighed, skrev jeg et simpelt sendmailværktøj ved hjælp af vbscript & CDO, som jeg ringede fra et batch script


Se eksemplerne her http://www.paulsadowski.com/WSH/cdo.htm[16]

Andre referencer 5


Vi bruger blat til at gøre det hele tiden i vores miljø. Jeg bruger det også til at oprette forbindelse til Gmail med Stunnel. Her er paramerne til at sende en fil [17]


blat -to user@example.com -server smtp.example.com -f batch\_script@example.com -subject "subject" -body "body" -attach c:	empfile.txt


Eller du kan sætte den fil ind som kroppen


blat c:	empfile.txt -to user@example.com -server smtp.example.com -f batch\_script@example.com -subject "subject"

Andre referencer 6


Du kan også bruge sendmail . Jeg bruger det i denne subversion krog for at sende email notifikationer: post-commit hook

Andre referencer 7


Der er flere metoder til håndtering af dette problem.


Mit råd er at bruge den kraftfulde Windows freeware konsol ansøgning SendEmail. [19]


sendEmail.exe -f sender.from@mail.com -o message-file=body.txt -u subject message -t to.email.address@mail.com -a attachment.zip -s smtp.gmail.com:446 -xu gmail.login -xp gmail.password