A maneira mais fácil de enviar um email a partir da linha de comando, usando o Windows 2003 R2

11

Eu tenho um servidor Windows 2003 R2 e quero enviar um email a partir da linha de comando. Este servidor não possui o serviço SMTP configurado. Existe um liner que me permita enviar um email? Meu caso de uso específico no momento é enviar um email quando um alerta de desempenho for acionado, mas seria útil em geral.

Eu estou esperando por algo como

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

Atualização: Eu preferiria uma solução que não envolva a instalação de software de terceiros.

Pedro
fonte
Utilitários como blat e sendemail não requerem instalação. Ambos são arquivos exe independentes.
John Gardeniers
Eu acho que tenho que aceitar que eu preciso, pelo menos, copiar um exe (blat ou powershell) para cada máquina. Se for esse o caso, então o blat é muito fácil de usar. Obrigado. Ainda me pergunto por que a MS deixou esse recurso de fora, considerando quantos outros menos úteis eles colocaram na distribuição padrão.
Peter Peter

Respostas:

15

Eu tentaria tagarelar . Você pode escrever um vbscript, mas não há executável embutido para enviar email

Jim B
fonte
seconding blat. Pode ser um pouco exigente a passagem de parâmetros diretamente da linha de comando, mas depois que você o define, faz exatamente o que o OP precisa.
Chris Thorpe
Eu uso blat há anos com grande sucesso. No entanto, se eu estivesse escrevendo em PowerShell, mudaria.
uSlackr
O blat é capaz de funcionar como caminho de envio de email para PHP no Windows?
precisa saber é o seguinte
14

Você consideraria o powershell em vez de cmd.exe? Nesse caso, o envio de email é incorporado:

$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 criar um liner, salve o seguinte em um arquivo de script do 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)

(certifique-se de alterar o servidor smtps para ser o seu real)

Então você pode chamá-lo usando:

powershell.exe c:\path\to\sendmail.ps1 "[email protected]" "[email protected]" "title" "body"
MattB
fonte
1
o powershell também teria que ser instalado, caso contrário, eu o teria preferido em vez do vbscript.
Jim B
Boa resposta. Apenas uma pequena alteração, os argumentos precisam ser aspas simples.
precisa saber é o seguinte
6

Eu usei o bmail com grande sucesso no passado.

Uso (copiado do site)

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
fonte
1
Devo admitir que esperava uma solução embutida, embora a resposta de Jim pareça implicar que isso foi um pouco ingênuo de minha parte ... #
Peter Peter
2

Experimente gratuitamente o Mail Alert Simple Mailer: https://sourceforge.net/projects/mail-alert/

Ele suporta servidores de correio SSL / TLS como o gmail e é fácil de configurar.

Admin
fonte
Também suporta SSL.
Roland Pihlakas
0

Mais um programa de mala direta na linha de comando:

Também suporta SSL.

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

O utilitário Win mais simples que encontrei e uso no ambiente de produção. Executável independente, sem instalação ou configuração obrigatória. Oferece suporte a não TLS e TLS. E possui um depurador, que às vezes é útil.

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

acesso concedido
fonte