web-dev-qa-db-fra.com

envoi de courrier à partir d'un fichier batch

Nous avons un script pour sauvegarder les fichiers. Une fois l'opération de sauvegarde terminée, nous aimerions envoyer un rapport sous forme de notification par e-mail à certaines de nos adresses e-mail.

Comment cela pourrait-il être fait?

47
user73628

Blat :

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

Vous pouvez également utiliser un script Powershell:

$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
Philibert Perusse

PowerShell est livré avec une commande intégrée pour cela . Donc, en cours d'exécution directement à partir d'un .bat fichier:

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

[~ # ~] nb [~ # ~] -ExecutionPolicy ByPass n'est nécessaire que si vous n'avez pas configuré d'autorisations pour exécuter PS à partir de CMD

Aussi pour ceux qui cherchent à l'appeler depuis PowerShell, déposez tout avant -Command [inclus] et ` sera votre personnage d'échappement (pas ^)

11
Hashbrown

bmail . Installez simplement l'EXE et exécutez une ligne comme celle-ci:

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

Le moyen le plus simple consiste à utiliser une application tierce comme mentionné par d'autres

Si ce n'est pas une option, j'ai écrit un simple utilitaire sendmail en utilisant vbscript & CDO que j'ai appelé à partir d'un script batch

Voir les exemples ici http://www.paulsadowski.com/WSH/cdo.htm

5
laurie

Vous pouvez également utiliser sendmail . Je l'utilise dans ce hook Subversion pour envoyer des notifications par e-mail: hook post-commit

3

Nous utilisons blat pour le faire tout le temps dans notre environnement. Je l'utilise également pour me connecter à Gmail avec Stunnel . Voici les paramètres pour envoyer un fichier

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

Ou vous pouvez mettre ce fichier en tant que corps

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

Il existe plusieurs méthodes pour gérer ce problème.

Mon conseil est d'utiliser la puissante application console Windows freeware 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
Expertsblog.info