La forma más fácil de enviar un correo electrónico desde la línea de comandos, utilizando Windows 2003 R2

11

Tengo un servidor Windows 2003 R2 y quiero enviar un correo electrónico desde la línea de comandos. Este servidor no tiene configurado el servicio SMTP. ¿Hay una línea que me permita enviar un correo electrónico? Mi caso de uso específico en este momento es enviar un correo electrónico cuando se activa una alerta de rendimiento, pero sería útil en general.

Espero algo como

foomail -t [email protected] -f [email protected] -m "Alert!  the sky is falling"

Actualización: preferiría una solución que no implique la instalación de software de terceros.

Peter
fuente
Las utilidades como blat y sendemail no requieren instalación. Ambos son archivos exe independientes.
John Gardeniers
Supongo que tengo que aceptar que necesito al menos copiar un exe (ya sea blat o powershell) en cada máquina. Si ese es el caso, entonces blat es muy fácil de usar. Gracias. Todavía me pregunto por qué MS omitió esta característica, considerando cuántos otros menos útiles pusieron en la distribución estándar.
Peter

Respuestas:

15

Intentaría blat . Puede escribir un vbscript pero no hay un ejecutable integrado para enviar correo

Jim B
fuente
secundando blat. Puede ser un poco exigente al pasar parámetros directamente desde la línea de comando, pero una vez que lo logra, hace exactamente lo que necesita el OP.
Chris Thorpe
He estado usando blat durante años con gran éxito. Sin embargo, si estuviera escribiendo en PowerShell, cambiaría.
uSlackr
¿Blat puede funcionar como ruta de envío de correo para PHP en Windows?
SaidbakR
14

¿Consideraría powershell en lugar de cmd.exe? Si es así, el envío de correo está integrado:

$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)  

Para hacer un forro único, guarde lo siguiente en un archivo de script de 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)

(asegúrese de cambiar el smtpserver para que sea el real)

Entonces puedes llamarlo usando:

powershell.exe c:\path\to\sendmail.ps1 "[email protected]" "[email protected]" "title" "body"
MattB
fuente
1
Powershell también tendría que estar instalado, de lo contrario lo hubiera preferido sobre vbscript.
Jim B
Buena respuesta. Solo un cambio menor, los argumentos deben ser comillas simples.
Brain2000
6

He usado bmail con gran éxito en el pasado.

Uso (copiado del sitio 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
fuente
1
Tengo que admitir, que estaba esperando una construida en la solución, aunque la respuesta de Jim parece dar a entender que era un poco ingenuo de mi ...
Peter
0

Un programa de correo de línea de comandos más:

También es compatible con SSL.

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

La utilidad Win más simple que encontré y utilicé en el entorno de producción. Ejecutable independiente, sin instalación o configuración obligatoria. Admite no TLS y TLS. Y tiene un depurador, que a veces es útil.

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

acceso permitido
fuente