Найпростіший спосіб надіслати електронну пошту з командного рядка за допомогою Windows 2003 R2


11

У мене є сервер Windows 2003 R2, і я хочу надіслати електронний лист із командного рядка. На цьому сервері не налаштована служба SMTP. Чи є один вкладиш, який дозволить мені надіслати електронний лист? На даний момент моїм конкретним випадком використання є надсилання електронного листа, коли спрацьовує попередження про ефективність, але це було б корисно в цілому.

Я сподіваюся на щось подібне

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

Оновлення: я б більше віддав перевагу рішенню, яке не передбачає встановлення стороннього програмного забезпечення.


Утиліти, такі як blat та sendmail, не потребують встановлення. Вони обидва автономних файлів EXE.
Джон Гарденєр

Я думаю, що я повинен прийняти, що мені потрібно як мінімум скопіювати exe (або blat, або powerhell) на кожну машину. Якщо це так, то блат дуже простий у використанні. Спасибі. Мені все ще цікаво, чому MS залишила цю функцію, враховуючи, скільки інших, менш корисних, вони вкладаються у стандартний дистрибутив.
Пітер

Відповіді:


15

Я б спробував блат . Ви можете написати vbscript, але не існує вбудованого виконуваного файлу для відправки пошти


блакитний блат. Це може бути трохи прискіпливим щодо передачі параметрів безпосередньо з командного рядка, але як тільки ви це вкажете, це робить саме те, що потрібно ОП.
Кріс Торп

Я використовую блат протягом багатьох років з великим успіхом. Однак, якби я писав по-справжньому, я б перейшов.
uSlackr

Чи може blat працювати як шлях відправки пошти для PHP в Windows?
SaidbakR

14

Чи розглядаєте ви, ніж замість cmd.exe powershell? Якщо так, відправка пошти вбудована:

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

Щоб зробити один вкладиш, збережіть наступне у файлі скрипта з повноцінною оболонкою (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)

(не забудьте змінити smtpserver на справжній)

Тоді ви можете зателефонувати за допомогою:

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

1
Також було б встановлено повноваження, інакше я віддав би перевагу цьому над vbscript.
Jim B

Гарна відповідь. Лише одна незначна зміна, аргументи повинні бути одинарними цитатами.
Brain2000

6

У минулому я користувався bmail з великим успіхом.

Використання (скопійовано з веб-сайту)

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
Маю визнати, я сподівався на вбудоване рішення, хоча, здається, відповідь Джима передбачає, що я трохи наївний для мене ...
Петро



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

Найпростіша утиліта Win, яку я знайшов і використовую у виробничих умовах. Автономний виконуваний файл, без встановлення чи встановленої конфігурації. Підтримує як TLS, так і TLS. І має налагоджувач, який іноді корисний.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.