Najprostszym sposobem wysłania wiadomości e-mail z wiersza polecenia przy użyciu systemu Windows 2003 R2

11

Mam serwer Windows 2003 R2 i chcę wysłać wiadomość e-mail z wiersza polecenia. Na tym serwerze nie skonfigurowano usługi SMTP. Czy istnieje jedna linijka, która pozwoli mi wysłać wiadomość e-mail? Moim szczególnym przypadkiem użycia jest wysłanie wiadomości e-mail po uruchomieniu alertu o wydajności, ale ogólnie byłoby to przydatne.

Mam nadzieję na coś takiego

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

Aktualizacja: Wolałbym rozwiązanie, które nie wymaga instalowania oprogramowania innych firm.

Piotr
źródło
Narzędzia takie jak blat i sendemail nie wymagają instalacji. Oba są wolnostojącymi plikami exe.
John Gardeniers,
Chyba muszę zaakceptować fakt, że muszę przynajmniej skopiować plik exe (blat lub PowerShell) na każdą maszynę. W takim przypadku blat jest bardzo łatwy w użyciu. Dzięki. Nadal zastanawiam się, dlaczego MS pominęło tę funkcję, biorąc pod uwagę, ile innych mniej przydatnych wprowadzili do standardowej dystrybucji.
Peter

Odpowiedzi:

15

Spróbowałbym bezkarnie . Możesz napisać vbscript, ale nie ma wbudowanego pliku wykonywalnego do wysyłania poczty

Jim B.
źródło
oddelegowanie blat. Może być nieco wybredny w przekazywaniu parametrów bezpośrednio z wiersza poleceń, ale po naciśnięciu robi dokładnie to, czego potrzebuje OP.
Chris Thorpe,
Używam blat od lat z wielkim sukcesem. Jednak gdybym pisał w PowerShell, zmieniłbym.
uSlackr
Czy blat może działać jako ścieżka wysyłania poczty dla PHP w systemie Windows?
SaidbakR
14

Czy bierzesz pod uwagę powershell zamiast cmd.exe? Jeśli tak, wysyłanie poczty jest wbudowane:

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

Aby utworzyć jeden liner, zapisz następujące elementy w pliku skryptu 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)

(pamiętaj, aby zmienić smtpserver na swój prawdziwy)

Następnie możesz to nazwać za pomocą:

powershell.exe c:\path\to\sendmail.ps1 "[email protected]" "[email protected]" "title" "body"
MattB
źródło
1
musiałby być również zainstalowany PowerShell, w przeciwnym razie wolałbym go od vbscript.
Jim B
Niezła odpowiedź. Tylko jedna drobna zmiana, argumenty muszą być pojedynczymi cudzysłowami.
Brain2000
6

W przeszłości korzystałem z bmaila .

Użycie (skopiowane ze strony internetowej)

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
źródło
1
Muszę przyznać, że liczyłem na wbudowane rozwiązanie, choć odpowiedź Jima wydaje się sugerować, że było to dla mnie trochę naiwne ...
Peter
2

Wypróbuj bezpłatny Mail Alert Simple Mailer: https://sourceforge.net/projects/mail-alert/

Obsługuje serwery pocztowe SSL / TLS, takie jak Gmail, i jest „łatwy w konfiguracji.

Administrator
źródło
Obsługuje również SSL.
Roland Pihlakas,
0
sendEmail -f %from_address% -t %to_address% -u "Subject Line" -m "Message" -s %smtp_server%

Najprostsze narzędzie Win, które znalazłem i którego używam w środowisku produkcyjnym. Samodzielny plik wykonywalny, bez instalacji lub konfiguracji wymaganej. Obsługuje zarówno nie TLS, jak i TLS. Ma debugger, który czasem jest pomocny.

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

Dostęp przyznany
źródło