У меня есть сервер Windows 2003 R2, и я хочу отправить электронное письмо из командной строки. На этом сервере не настроена служба SMTP. Есть ли один лайнер, который позволит мне отправить электронное письмо? Мой конкретный вариант использования на данный момент - отправить электронное письмо, когда срабатывает предупреждение о производительности, но в целом это было бы полезно.
Я надеюсь на что-то вроде
foomail -t peter@example.org -f blah@example.org -m "Alert! the sky is falling"
Обновить: Я бы предпочел решение, которое не требует установки стороннего программного обеспечения.
Я бы попробовал блат. Вы можете написать vbscript, но нет встроенного исполняемого файла для отправки почты
Вы бы рассмотрели powershell, а не cmd.exe? Если да, то отправка почты встроена:
$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)
Чтобы сделать однострочник, сохраните следующее в файл сценария PowerShell (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"
Я использовал 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)
Попробуйте бесплатную Mail Alert Simple Mailer: https://sourceforge.net/projects/mail-alert/
Он поддерживает почтовые серверы SSL / TLS, такие как Gmail, и его легко настроить.
sendEmail -f %from_addr% -t %to_addr% -u "Subject Line" -m "Message" -s %smtp_server%
Самая простая утилита Win, которую я нашел и использовал в производственной среде. Автономный исполняемый файл без установки или обязательной настройки. Поддерживает как TLS, так и TLS. И есть отладчик, который иногда бывает полезен.
http://caspian.dotconf.net/menu/Software/SendEmail/#download