Abbiamo uno script per il backup dei file. Una volta terminata l'operazione di backup, vorremmo inviare un rapporto come notifica e-mail ad alcuni dei nostri indirizzi e-mail.invio di posta dal file batch
Come si può fare?
Abbiamo uno script per il backup dei file. Una volta terminata l'operazione di backup, vorremmo inviare un rapporto come notifica e-mail ad alcuni dei nostri indirizzi e-mail.invio di posta dal file batch
Come si può fare?
bmail. Basta installare il file EXE ed eseguire una riga come questa:
bmail -s myMailServer -f [email protected] -t [email protected] -a "Production Release Performed"
Qui non posso installare bamil come da scopo di sicurezza. Per favore, dimmi che esiste un modo alternativo per risolvere il mio problema. – user73628
Hai provato con altri client di posta elettronica da riga di comando? Una ricerca su Google elenca un numero considerevole di strumenti disponibili gratuitamente. –
Blat:
blat -to [email protected] -server smtp.example.com -f [email protected] -subject "subject" -body "body"
questo dovrebbe essere stato contrassegnato come soluzione –
Il modo più semplice è quello di utilizzare un'applicazione di terze parti, come detto da altri
Se questo non è un opzione Ho scritto una semplice utility sendmail usando vbscript & CDO che ho chiamato da uno script batch
Vedere gli esempi qui http://www.paulsadowski.com/WSH/cdo.htm
Usiamo blat per fare tutto questo tempo nel nostro ambiente. Lo uso anche per connettermi a Gmail con Stunnel. Ecco i params per inviare un file
blat -to [email protected] -server smtp.example.com -f [email protected] -subject "subject" -body "body" -attach c:\temp\file.txt
Oppure si può mettere il file in quanto il corpo
blat c:\temp\file.txt -to [email protected] -server smtp.example.com -f [email protected] -subject "subject"
È inoltre possibile utilizzare uno script Power Shell:
$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)
upvoted. Ma se non vuoi fare un '.ps1', [puoi chiamarlo direttamente dal batch] (http://stackoverflow.com/a/38604180/2518317) – Hashbrown
La domanda riguardava BATCH, non PowerShell. Poweshell supporta solo W7 e versioni successive –
È inoltre possibile utilizzare sendmail. Lo sto utilizzando in questo hook di subversion per inviare notifiche via email: post-commit hook
Esistono diversi metodi per gestire questo problema.
Il mio consiglio è di utilizzare la potente applicazione per console freeware di Windows 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
PowerShell comes with a built in command for it. Così in esecuzione direttamente da un file .bat
:
powershell -ExecutionPolicy ByPass -Command Send-MailMessage^
-SmtpServer server.address.name^
-To [email protected]^
-From [email protected]^
-Subject Testing^
-Body 123
NB-ExecutionPolicy ByPass
è necessario solo se non si è impostare le autorizzazioni per l'esecuzione di PS da CMD
Anche per coloro che cercano di chiamare da all'interno di PowerShell mollare tutto prima -Command
[inclusiva], e `
sarà il vostro carattere di escape (non ^
)
plzsendz tehcodz? –
Sono confuso. Sta chiedendo come inviare email da un file batch. Come non è una domanda di programmazione? – RossFabricant
dannato 'lotto e non bash, dimenticare il mio commento – chburd