Следует начать с того, что Windows Powershell — это не стандартная командная строка с черным фоном. Это другая оболочка и фон у нее темно-синий. Она поставляется в системы Windows начиная в 7 версии. И с ее помощью можно отравлять письма на почту через SMPT сервер. В некоторых случаях такой способ отправки Email может выручить, когда все другие по каким-то причинам вам недоступны. Ну и для общей практики и знакомства с терминалом Windows Powershell и некоторыми его командами, которые в нем называются — командлеты. Вызвать окно Powershell очень просто. Достаточно нажать Win + R и вписать туда Powershell.
Для отправки вам потребуется доступ к почте (логин и пароль). С этого адреса будет отправлен Email.
А вот и сам скрипт:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| $EmailTo = "po4ta@mail.ru"
$EmailFrom = "PowerShell mymail@yandex.ru"
$Subject = "Отправка из PowerShell"
$Body = "Тестовое сообщение, <b>отправленное</b> из командной строки PowerShell"
$SMTPServer = "smtp.yandex.ru"
$filenameAndPath = "C:\Users\777\Downloads\003435.pdf"
$SMTPMessage = New-Object System.Net.Mail.MailMessage($EmailFrom,$EmailTo,$Subject,$Body)
$attachment = New-Object System.Net.Mail.Attachment($filenameAndPath)
$SMTPMessage.IsBodyHTML=$true
$SMTPMessage.Attachments.Add($attachment)
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
$SMTPClient.EnableSsl = $true
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential("mymail@ya.ru", "mymail123");
$SMTPClient.Send($SMTPMessage) |
$EmailTo = "po4ta@mail.ru"
$EmailFrom = "PowerShell mymail@yandex.ru"
$Subject = "Отправка из PowerShell"
$Body = "Тестовое сообщение, <b>отправленное</b> из командной строки PowerShell"
$SMTPServer = "smtp.yandex.ru"
$filenameAndPath = "C:\Users\777\Downloads\003435.pdf"
$SMTPMessage = New-Object System.Net.Mail.MailMessage($EmailFrom,$EmailTo,$Subject,$Body)
$attachment = New-Object System.Net.Mail.Attachment($filenameAndPath)
$SMTPMessage.IsBodyHTML=$true
$SMTPMessage.Attachments.Add($attachment)
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
$SMTPClient.EnableSsl = $true
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential("mymail@ya.ru", "mymail123");
$SMTPClient.Send($SMTPMessage)
Теперь разберем более подробно.
1 |
Куда отправляем Email |
2 |
Имя и адрес отправителя |
3 |
Тема письма |
4 |
Текст письма |
5 |
Имя SMTP сервера |
6 |
Путь к файлу-вложению (если нужен) |
7, 8 |
Формирование объекта сообщения |
9 |
Включение возможности отправлять HTML письма |
10 |
Добавление вложения к письму |
11 |
Указание порта SMTP сервера |
12 |
Включение защищенного соединения SSl |
13 |
Адрес и пароль почты. с которого будет отправка |
14 |
Отправка сообщения |
Особенное внимание прошу обратить на 9 строчку. Это полноценная возможность отправлять HTML письма через Windows Powershell по тому же принципу, как это делается в PHP. Необходимо ввести Email, кому вы хотите отправить сообщение, ввести свой адрес почты и пароль, написать текст, потом вставить все это в окно Powershell и нажать Enter. Можете потренироваться на своем ящике. У меня это выглядит вот так:
А само письмо вот так:
В основном эти терминалом пользуются системные администраторы и с его помощью можно решать различные задачи, но рядовому пользователю достаточно знать, что он есть (кстати многие не знают) и умеnь от править через него письмо. На этом знакомство с Windows Powershell подошло к концу. Напишите, знали вы о таком приложении в Виндовс или узнали впервые?
Впервые услышал. Попробую.