7 votes

Comment envoyer un courrier à partir d'un fichier batch Windows à l'aide de l'utilitaire Blat ?

Je veux envoyer un courrier à partir d'un fichier batch Windows. Voici mon code :

blat test.log -server smtp.gmx.com -to dest@gmail.com -f address@gmail.com -s "test mail" -u "address@gmail.com" -pw "password" -debug -log envois-mails.log -timestamp 

Voici l'erreur que je reçois :

2014.07.23 14:07:26 (Wed): <<<getline<<< 535 Authentication credentials invalid
2014.07.23 14:07:26 (Wed): The SMTP server did not accept Auth PLAIN value.
Are your login userid and password correct?
2014.07.23 14:07:26 (Wed): >>>putline>>> AUTH LOGIN
2014.07.23 14:07:26 (Wed): <<<getline<<< 334 VXNlcm5hbWU6
2014.07.23 14:07:26 (Wed): >>>putline>>> b3Vzcy56YWltQGdtYWlsLmNvbQ==
2014.07.23 14:07:26 (Wed): <<<getline<<< 334 UGFzc3dvcmQ6
2014.07.23 14:07:26 (Wed): >>>putline>>> aG90bWFpbGhvdG1haWw=
2014.07.23 14:07:26 (Wed): <<<getline<<< 535 Authentication credentials invalid
2014.07.23 14:07:26 (Wed): The SMTP server did not accept Auth LOGIN PASSWD value.
2014.07.23 14:07:26 (Wed): >>>putline>>> QUIT
2014.07.23 14:07:26 (Wed): <<<getline<<< 221 gmx.com Service closing transmission channel

Avez-vous une idée sur la façon de résoudre ce problème ?

J'utilise Blat pour envoyer les emails

4voto

Stephen Points 91

Je pense que vous pouvez facilement le faire avec Powershell.

Suivez ces étapes :

Étape 1 - Ouvrir CMD (Exécuter en tant qu'administrateur)
Étape 2 - Tapez Powershell (Appuyez sur Entrée)
Étape 3 - Copiez d'abord le code ci-dessous dans le bloc-notes

$EmailFrom = “Your email Address” $EmailTo = “Recipients email Address”
$Subject = “The subject of your email”
$Body = “This is just a test mail to verify the working of CMD”
$SMTPServer = “smtp.gmail.com”
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
$SMTPClient.EnableSsl = $true
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential(“username”, “password”);
$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)

Étape 4 - changer votre adresse e-mail en adresse e-mail de l'expéditeur
Étape 5 - Modification de l'adresse électronique des destinataires
Étape 6 - Remplacer l'objet et le corps du texte en fonction de vos besoins.
Étape 7 - Remplacez "nom d'utilisateur" et "mot de passe" par vos informations d'identification.
Étape 8 - Copiez le code ci-dessus et collez-le dans Windows Powershell.

Cela va sûrement fonctionner pour gmail. Pour les autres, vous pouvez essayer de changer les détails du serveur SMTP et du client.

2voto

Jeremy Davis Points 131

Comme d'autres l'ont deviné, cela est dû au fait que Gmail exige une connexion TLS/SSL et, d'après ce que je peux voir, Blat ne prend pas en charge cette connexion.

Je l'ai contourné avec étourdissement qui fonctionne très bien. Il met en place un tunnel TLS/SSL (vers le SMTP de gmail dans ce cas) que les applications non compatibles TLS/SSL peuvent utiliser pour envoyer des e-mails. Je l'utilise également pour envoyer des e-mails (via gmail) à partir de quelques autres applications qui ne prennent pas en charge TLS/SSL. Je ne me souviens pas de la configuration, mais c'était assez simple.

Vous utilisez toujours vos identifiants gmail, mais vous remplacez votre serveur stunnel (localhost ? - Je l'ai configuré sur son propre serveur Linux et j'utilise son IP, mais comme il est multiplateforme, je suppose qu'il pourrait utiliser localhost sous Windows).

2voto

tomsontom Points 2121

Cela fonctionne pour moi, en utilisant des guillemets doubles autour des variables.

J'utilise un lot script pour appeler powershell Send-MailMessage

Batch script:send_email.bat

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe  -windowstyle hidden -command 'E:\path\send_email.ps1

Pwershell script send_email.ps1

Send-MailMessage -From "noreply@$env:computername" -To '<target_email@example.com>' -Subject 'Blah Blah' -SmtpServer  'smtp.domain.com'  -Attachments 'E:\path\file.log' -BODY "Blah Blah on Host: $env:computername "

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X