Главная

Tuesday, 27 April 2021

Отправка почты с помощью VB-скрипта.


Всем привет.

Возращаясь к вопросу отправки писем с помощью скрипта VB (позже Powershell) мне посоветовали вот такой вот пример:

Dim objStream, strData

Set objEmail = CreateObject("CDO.Message")

objEmail.From = "Server-01@forza.com"

objEmail.To = "SuperAdmin@forza.com,ServiceDesk@forza.com"

objEmail.Subject = "Info about Server-01"

objEmail.Configuration.Fields.Item _

 ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

objEmail.Configuration.Fields.Item _

 ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "forza-mail.com"

objEmail.Configuration.Fields.Item _

 ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25

objEmail.Configuration.Fields.Update


Set objStream = CreateObject("ADODB.Stream")

objStream.CharSet = "UTF-8"

objStream.Open

objStream.LoadFromFile("D:\alarm.txt")

strData = objStream.ReadText()

objEmail.Textbody = strData

objEmail.Send

objStream.Close

Set objStream = Nothing

Напомню что проблема была в том, что VB-скрипт не считывал корректно кириллицу из файла в текст письма. Поэтому якобы чтение через ADODB.Stream вместо FSO.OpenTextFile эту проблему решает. Увы, не решает. Кракозябры приходят как и раньше.(

Поэтому пришлось вернуться к формированию тела письма прямо в  коде:

$EmailFrom = "Server-01@forza.com"

$EmailTo   = "SuperAdmin@forza.com,ServiceDesk@forza.com"

$Subject   = "До наради"

$Body = "Доброго дня, за минулу добу все гаразд."

$SmtpServer = "forza-mail.com"

$smtp = New-Object net.mail.smtpclient($SmtpServer)

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

Вот  так вот.




1 comment:

  1. Отправленное таким образом письмо не отображается в Outlook отправителя.

    ReplyDelete

А что вы думаете по этому поводу?