Moyen le plus simple d'envoyer un e-mail à partir de la ligne de commande, à l'aide de Windows 2003 R2


11

J'ai un serveur Windows 2003 R2 et je souhaite envoyer un e-mail à partir de la ligne de commande. Ce serveur n'a pas le service SMTP configuré. Y a-t-il une doublure qui me permettra d'envoyer un e-mail? Mon cas d'utilisation spécifique pour le moment est d'envoyer un e-mail lorsqu'une alerte de performance est déclenchée, mais ce serait utile en général.

J'espère quelque chose comme

foomail -t peter@example.org -f blah@example.org -m "Alert!  the sky is falling"

Mise à jour: je préférerais de loin une solution qui n'implique pas l'installation de logiciels tiers.


Les utilitaires comme blat et sendemail ne nécessitent pas d'installation. Ce sont deux fichiers exe autonomes.
John Gardeniers

Je suppose que je dois accepter que je dois au moins copier un exe (blat ou powershell) sur chaque machine. Si tel est le cas, alors blat est très facile à utiliser. Merci. Je me demande toujours pourquoi MS a omis cette fonctionnalité, compte tenu du nombre d'autres moins utiles qu'ils ont mis dans la distribution standard.
Peter

Réponses:


15

J'essaierais blat . Vous pouvez écrire un vbscript mais il n'y a pas d'exécutable intégré pour envoyer du courrier


détachement blat. Il peut être un peu difficile de passer des paramètres directement à partir de la ligne de commande, mais une fois que vous l'avez cloué, fait exactement ce dont l'OP a besoin.
Chris Thorpe

J'utilise blat depuis des années avec beaucoup de succès. Cependant, si j'écrivais en PowerShell, je changerais.
uSlackr

Est-ce que blat peut fonctionner comme chemin d'envoi de courrier pour PHP sous Windows?
SaidbakR

14

Considérez-vous powershell plutôt que cmd.exe? Si c'est le cas, l'envoi de courrier est intégré:

$SmtpClient = New-Object System.Net.Mail.SmtpClient
$SmtpServer = "your.mail.host.com"
$SmtpClient.host = $SmtpServer 

$From = "Me <User@example.com>"
$To = User2@example.com
$Title = "Subject"
$Body = "Body Text" 
$SmtpClient.Send($From,$To,$Title,$Body)  

Pour créer une doublure, enregistrez les éléments suivants dans un fichier de script PowerShell (sendmail.ps1):

   param(  
        [string] $From = "from@example.com",
        [string] $To = "to@example.com",
        [string] $Title = "title",
        [string] $Body = "body"
    )
    $SmtpClient = New-Object System.Net.Mail.SmtpClient
    $SmtpServer = "your.mail.host.com"
    $SmtpClient.host = $SmtpServer 
    $SmtpClient.Send($From,$To,$Title,$Body)

(assurez-vous de changer le smtpserver pour qu'il soit le vôtre)

Ensuite, vous pouvez l'appeler en utilisant:

powershell.exe c:\path\to\sendmail.ps1 "from@example.com" "to@example.com" "title" "body"

1
powershell devrait également être installé, sinon je l'aurais préféré à vbscript.
Jim B

Bonne réponse. Juste un changement mineur, les arguments doivent être des guillemets simples.
Brain2000

6

J'ai utilisé bmail avec beaucoup de succès dans le passé.

Utilisation (copié à partir du site Web)

C:\>bmail /?

    Command Line SMTP Emailer V1.07
    Copyright(C) 2002-2004 Craig.Peacock@beyondlogic.org
    Usage: bmail [options]
            -s    SMTP Server Name
            -p    SMTP Port Number (optional, defaults to 25)
            -t    To: Address
            -f    From: Address
            -b    Text Body of Message (optional)
            -h    Generate Headers
            -a    Subject (optional)
            -m    Filename (optional) Use file as Body of Message
                -c    Prefix above file with CR/LF to separate body from header
                -d    Debug (Show all mail server communications)

1
Je dois admettre que j'espérais une solution intégrée, bien que la réponse de Jim semble impliquer que j'étais un peu naïf ...
Peter



0
sendEmail -f %from_address% -t %to_address% -u "Subject Line" -m "Message" -s %smtp_server%

L'utilitaire Win le plus simple que j'ai trouvé et utilisé dans un environnement de production. Exécutable autonome, sans installation ni configuration obligatoire. Prend en charge non TLS et TLS. Et dispose d'un débogueur, ce qui est parfois utile.

http://caspian.dotconf.net/menu/Software/SendEmail/#download

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.