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 [email protected] -f [email protected] -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.

Peter
la source
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

Jim B
la source
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 <[email protected]>"
$To = [email protected]
$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 = "[email protected]",
        [string] $To = "[email protected]",
        [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 "[email protected]" "[email protected]" "title" "body"
MattB
la source
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 [email protected]
    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)
Zypher
la source
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
2

Essayez gratuitement Mail Alert Simple Mailer: https://sourceforge.net/projects/mail-alert/

Il prend en charge les serveurs de messagerie SSL / TLS comme gmail et sa «facile à configurer.

Admin
la source
Il prend également en charge SSL.
Roland Pihlakas
0

Un autre programme de messagerie en ligne de commande:

Il prend également en charge SSL.

Roland Pihlakas
la source
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

accès autorisé
la source