Отправить почту с помощью командной строки - PullRequest
0 голосов
/ 01 марта 2011

Может кто-нибудь мне помочь, нам нужно отправлять почту через командную строку с сервера Windows. Мы не можем использовать Blat из-за проблем безопасности, и мы также не хотим устанавливать набор ресурсов Exchange. У нас есть собственный почтовый сервер обмена, который мы можем использовать.

Может быть, если какой-либо пакет может быть запущен для доступа к нашему почтовому SMTP-серверу.

Заранее спасибо.

Ответы [ 6 ]

0 голосов
/ 20 марта 2016

Это пример отправки почты с вашего адреса Gmail, для других серверов вам нужно изменить -smtp и -port

$ securepass = ConvertTo-SecureString -String $ yourpassword -A -F

$ credential = new-object PSCredential $ yourusername, $ securepass

send-mailmessage -from "$yourusername@gmail.com" -to $ получателю -subject "subject" -body "message" -smtpserver smtp.gmail.com -port 587 -usessl -credential $ credential -encoding utf8

Вот скрипт, который может отправлять почту с вашего Gmail: https://gallery.technet.microsoft.com/scriptcenter/PC-Utilities-Downloader-355e5bfe

0 голосов
/ 27 ноября 2015

Для отправки почты из командной строки в windows: -
Сохраните его в текстовом файле и назовите этот файл примерно так: sendmail.ps1

$EmailFrom = "from@gmail.com"

$EmailTo = "to@domain.com"

$Subject = "The subject of your email"

$Body = "What do you want your email to say"

$SMTPServer = "smtp.gmail.com"

$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)

$SMTPClient.EnableSsl = $true

$SMTPClient.Credentials = New-Object System.Net.NetworkCredential("gmail_username", "password");

$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)

-Не забудьте указать действующий адрес электронной почты и пароль.

Теперь откройте CMD и напишите эту команду

Powershell -ExecutionPolicy ByPass -File C: \ sendmail.ps1

Voila! почта отправлена ​​!!

0 голосов
/ 07 декабря 2014

HowToGeek демонстрирует сценарий Windows PowerShell, который очень хорошо работает на Как отправлять электронную почту из командной строки в Windows без дополнительного программного обеспечения

Вот метод: сначала вы определяетепеременные:

$ EmailFrom = «yourMail@gmail.com»
$ EmailTo = «theRecipient'sAddress@someServer.com»
$ Тема = «ваша тема»
$Тело = «некоторый текст»
$ SMTPServer = «smtp.gmail.com»
$ SMTPClient = Новый объект Net.Mail.SmtpClient ($ SmtpServer, 587)
$ SMTPClient.EnableSsl = $ true
$ SMTPClient.Credentials = New-Object System.Net.NetworkCredential («yourGmailUsername», «password»);

Затем вы используете эту команду для отправки почты:

$ SMTPClient.Send ($ EmailFrom, $ EmailTo, $ Subject, $ Body)

Вам потребуется действующая учетная запись Gmail для аутентификации пользователя Gmail.

0 голосов
/ 14 декабря 2013

очень хорошее решение, которое я нашел в целом хорошим, если без аутентификации и никакие программы не могут / должны быть установлены или могут существовать - это следующее, которое должно работать наUbuntu и другие платформы Linux (вы можете поместить все в одну строку, используя разделитель команд ; и удалив символы \ в строке echo в кавычках):

set sender="<sender@example.com>"
set recipient="<recipient@example.com>"
set subj="testsubj"
set body="testbody"
set srv="mysmtpsrv.com"
set port="25"
set crlf="\x0D\x0A"

echo "EHLO man${crlf}\
MAIL FROM: ${sender}${crlf}\
RCPT TO: ${recipient}${crlf}\
data${crlf}\
Subject: ${subj}${crlf}${crlf}\
${body}\
${crlf}.${crlf}"\
|\
nc -Ci 1 ${srv} ${port}

(используя вот такубедитесь, что вы сохраняете файл в стиле Unix (после обратной косой черты echo "...\ будет добавлен только символ \x0A. В противном случае просто удалите обратную косую черту и символ новой строки, который помещает все в строку и заставляет его работать, но менее визуально).структурированный.)

0 голосов
/ 04 мая 2011

Я получил разрешение этой проблемы без использования SMTP-клиентов. Я использовал скрипт Windows Powershell для отправки почты, и он работает очень хорошо.

Пожалуйста, проверьте ссылку ниже

http://blogs.msdn.com/b/powershell/archive/2009/10/30/sending-automated-emails-with-send-mailmessage-convertto-html-and-the-powershellpack-s-taskscheduler-module.aspx

Удачного кодирования !!

0 голосов
/ 01 марта 2011

Если вы не хотите устанавливать какой-либо SMTP-клиент вообще, а просто хотите использовать окна и, возможно, пакетные файлы, вы можете использовать Telnet для подключения к порту 25 вашего сервера smtp и отправки команд вручную. Вот пример того, как это сделать .
В любом случае, я лично предпочел бы установить какой-либо SMTP-клиент из командной строки, такой как Blat или Bmail , вместо того, чтобы ввязыватьсяпрямого взаимодействия с SMTP.

...