Войти

Показать полную графическую версию : [решено] Send-MailMessage


nwss
16-11-2022, 19:47
Доброго времени суток всем.
Помогите разобраться с автоматизацией отсылки почты.


$cred = Import-CliXML -Path 'cred.xml'

Send-MailMessage `
-From 'pochta@yandex.ru' `
-To 'pochta@yandex.ru' `
-SmtpServer 'smtp.yandex.ru' `
-Body 'Davai работай' `
-Port '587' `
-UseSsl `
-Subject 'test' `
-dno onFailure `
-Credential $cred


https://i.postimg.cc/gkkfd1Jr/image.png (https://postimages.org/)

https://i.postimg.cc/DwCGHJN8/image.png (https://postimages.org/)

Теперь вопросы:
1. как избежать окна с вводом кредов и указать их в коде? или любым другим способом. я планирую отправить +-200 писем и готов ввести креды 1 раз (в идеале 0 раз). Вроде решил.
https://i.postimg.cc/rmBJYnmV/image.png (https://postimages.org/)
CP-866 и CP-1251 почту отправляют нормально, но кириллицу заменяют на ?????? решилось сохранением файла в кодировке CP-1251 и параметром -Encoding utf8
3. Если есть под рукой хорошие примеры или готовые решения - с радостью изучу, потому что мне еще предстоит само тело письма отформатировать для html и я думаю там я горя хлебну.

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

DJ Mogarych
16-11-2022, 20:01
Добавьте параметр

-Encoding utf8

nwss
16-11-2022, 20:21
https://i.postimg.cc/MHj6bY3J/image.png (https://postimages.org/)photo sharing (https://postimages.org/ru/)

если документ сохраняю в utf-8 то выдает ошибку

https://i.postimg.cc/j2CX8Dyb/image.png (https://postimages.org/)

dmitryst
17-11-2022, 10:13
DJ Mogarych, может, таки base64? ;)

nwss
17-11-2022, 20:35
Решилось сохранением файла скрипта в CP-1251 и советом от могарыча.
Всем спасибо, почта улетела.

$cred = Get-Credential
$cred | Export-CliXML -Path 'cred-pochta-yandex.xml'$file = Get-Content -Path 'mail-orel-adm.txt'
$from = 'pochta@yandex.ru'
$cred = Import-CliXML -Path 'cred-pochta-yandex.xml'
$smtp = 'smtp.yandex.ru'
$port = 587
$subj = 'сабж'
$body = '
боди
'
$encoding = [System.Text.Encoding]::UTF8
for ($i = 0; $i -lt $file.Count; $i++) {
[Console]::Write($i);[Console]::Write(". ");Write-Output $file.Item($i)
Send-MailMessage `
-From $from `
-To $file.Item($i) `
-SmtpServer $smtp `
-Body $body `
-BodyAsHtml `
-Port $port `
-Subject $subj `
-UseSsl `
-dno 'onFailure', 'Delay' `
-Credential $cred `
-Encoding $encoding
}




© OSzone.net 2001-2012