Я пытаюсь отправить электронное письмо с помощью VBScript в формате HTML, текст которого хранится во внешнем файле.
Естественно, сценарий отлично работает с использованием обычного текста (и свойства Textbody).
Я предполагаю, что я использую неправильный метод для открытия и чтения файла - его, вероятно, нужно проанализировать, а не просто прочитать.
Вот мой VBScript (ну, не совсем мой, просто не вспомню источник):
Dim objEmail
Set objEmail = CreateObject("CDO.Message")
'************************************
'** Seting basic email information **
'************************************
Const EmailFrom = "[email protected]"
Const EmailTo = "[email protected]"
Const EmailCC = "[email protected]"
Const EmailSubject = "subject"
'***************************************
'** Setting Mail Server Configuration **
'***************************************
Const MailSendUsing = "2"
Const MailSendServer = "smtp.office365.com"
Const MailSendPort = "25"
Const MailSendUsername = "[email protected]"
Const MailSendPassword = "123456789"
Const MailSendAuthenticationType = "1"
'**************************************
'** Email Parameters (DO NOT CHANGE) **
'**************************************
objEmail.Sender = EmailFrom
objEmail.To = EmailTo
objEmail.CC = EmailCC
objEmail.Subject = EmailSubject
objEmail.Htmlbody = EmailBody
objEmail.AddAttachment EmailAttachments
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = MailSendUsing
ObjEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = MailSendServer
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = MailSendPort
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = MailSendAuthenticationType
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = MailSendUsername
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = MailSendPassword
objEmail.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
'*******************************************************
'** Setting a text file to be shown in the email Body **
'*******************************************************
Const ForReading = 1
Const ForWriting = 2
Const ForAppending = 8
'** File to be inserted in Body
Const FileToBeUsed = "C:\EMail\EMailTextBody.html"
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
'** Open the file for reading
Set f = fso.OpenTextFile(FileToBeUsed, ForReading, -1)
'** The ReadAll method reads the entire file into the variable BodyText
objEmail.Textbody = f.ReadAll
'** Close the file
f.Close
'** Clear variables
Set f = Nothing
Set fso = Nothing
'* cdoSendUsingPickup (1)
'* cdoSendUsingPort (2)
'* cdoSendUsingExchange (3)
'********************************
'** Parameters (DO NOT CHANGE) **
'********************************
ObjEmail.Configuration.Fields.Update
objEmail.Send
'Create the objects require for sending email using CDO
Set objMail = CreateObject("CDO.Message")
Set objConf = CreateObject("CDO.Configuration")
Set objFlds = objConf.Fields
Мой HTML-файл представляет собой полностью отформатированное в HTML-формате сообщение электронной почты из Outlook, которое прекрасно отображается в Edge. Но я также попробовал HTML-файл, вырезанный до его самого урезанного ядра, и он тоже не сработал:
<html>
<body>
<p>hallo!</p>
<img src="C:\EMail\image008.gif" />
</body>
</html>
Есть предложения и / или фрагменты кода для изучения? Заранее спасибо!
P.S. Думаю, мне может понадобиться что-то вроде этого для вставки изображений: https://gist.github.com/TaoK/3525090?