我改变了我的方法,并提出了以下工作解决方案。它是一个Auto IT脚本,它接受适当的变量来发送电子邮件,然后将该变量输入到VBS脚本中,将其写入文件,执行它,然后删除VBS脚本。它确实需要在运行脚本的机器上安装Outlook。
Global $recipient ;Who is the email going to
Global $recipientCC ;CC
Global $emailSubject ;Subject line of email - "$urgency & " Alert " & $emailSubject"
Global $urgency ;How urgent is the alert? High? Critical?
Global $issue ;Issue alert is being created for
Global $reportedTime ;Time issue was reported
Global $businessImpact ;the impact to the customer/store
Global $currentStatus ;the status to the customer/Store
Global $nextUpdate ;time of next update or explanation why issue is resolved
Global $alertType ;Type of Notice - Alert or Resolved
;Local $fromSD = 'Service Desk'
;Local $fromAddress = '[email protected]'
$file = FileOpen(@scriptdir&"\email2.vbs", 1) ;open emial2.vbs and assign to $file
$ToAddress = $recipient
$CC = $recipientCC
$MessageSubject = $urgency & " Alert " & $emailSubject
$strHTML = "<HTML>"
$strHTML = $strHTML & "<HEAD>"
$strHTML = $strHTML & "<style>"
$strHTML = $strHTML & "h1 {background-color:#4F81BD; color:white; text-align: center;}"
$strHTML = $strHTML & "table, td {border-collapse: collapse; border: 1px solid #4F81BD;} "
$strHTML = $strHTML & "p {color:black}"
$strHTML = $strHTML & "</style>"
$strHTML = $strHTML & "</HEAD>"
$strHTML = $strHTML & "<BODY>"
$strHTML = $strHTML & "<p> </p>"
$strHTML = $strHTML & "<table width = 500>"
$strHTML = $strHTML & "<tr>"
$strHTML = $strHTML & "<td colspan = 2><h1> " & $alertType & " </h1></td>"
;$strHTML = $strHTML & "<td ></td>"
$strHTML = $strHTML & "</tr>"
$strHTML = $strHTML & "<tr>"
$strHTML = $strHTML & "<td><p>Issue: </p></td>"
$strHTML = $strHTML & "<td><p> " & $issue & " </p></td>"
$strHTML = $strHTML & "</tr>"
$strHTML = $strHTML & "<tr>"
$strHTML = $strHTML & "<td><p>Reported Time: </p></td>"
$strHTML = $strHTML & "<td><p> " & $reportedTime & " </p></td>"
$strHTML = $strHTML & "</tr>"
$strHTML = $strHTML & "<tr>"
$strHTML = $strHTML & "<td><p>Business Impact: </p></td>"
$strHTML = $strHTML & "<td><p> " & $businessImpact & " </p></td>"
$strHTML = $strHTML & "</tr>"
$strHTML = $strHTML & "<tr>"
$strHTML = $strHTML & "<td><p>Current Status: </p></td>"
$strHTML = $strHTML & "<td><p>" & $currentStatus & " </p></td>"
$strHTML = $strHTML & "</tr>"
$strHTML = $strHTML & "<tr>"
$strHTML = $strHTML & "<td><p>Next Update: </p></td>"
$strHTML = $strHTML & "<td><p>" & $nextUpdate & " </p></td>"
$strHTML = $strHTML & "</tr>"
$strHTML = $strHTML & "</table>"
$strHTML = $strHTML & "<p>- IT Service Desk</p><hr>"
$strHTML = $strHTML & "</BODY>"
$strHTML = $strHTML & "</HTML>"
$MessageBody = $strHTML ; assign HTML to messageBody
;$MessageAttachment = @scriptdir&"\"&"a.txt"
FileWriteLine($file, 'Dim ToAddress')
FileWriteLine($file, 'Dim FromAddress')
FileWriteLine($file, 'Dim MessageSubject')
FileWriteLine($file, 'Dim MessageBody')
;FileWriteLine($file, 'Dim MessageAttachment')
;FileWriteLine($file, 'Dim MessageAttachment2')
FileWriteLine($file, 'Dim CC')
FileWriteLine($file, 'Dim ol, ns, newMail')
FileWriteLine($file, 'ToAddress = "'& $ToAddress &'"')
FileWriteLine($file, 'MessageSubject = "'& $MessageSubject &'"')
FileWriteLine($file, 'MessageBody = "'& $MessageBody&'"')
;FileWriteLine($file, 'MessageAttachment = "'& $MessageAttachment&'"')
FileWriteLine($file, 'CC = "'&$CC&'"')
FileWriteLine($file, 'Set ol = WScript.CreateObject("Outlook.Application")')
FileWriteLine($file, 'Set ns = ol.getNamespace("MAPI")')
FileWriteLine($file, 'ns.logon "","",true,false')
FileWriteLine($file, 'Set newMail = ol.CreateItem(olMailItem)')
FileWriteLine($file, 'newMail.SentOnBehalfOfName = "[email protected]"') ; Send email from IT Service Desk
FileWriteLine($file, 'newMail.Subject = MessageSubject')
FileWriteLine($file, 'newMail.HtmlBody = MessageBody & vbCrLf')
FileWriteLine($file, 'newMail.CC = CC & vbCrLf')
FileWriteLine($file, "' validate the recipient, just in case...")
FileWriteLine($file, 'Set myRecipient = ns.CreateRecipient(ToAddress)')
FileWriteLine($file, 'Set myRecipient2 = ns.CreateRecipient(CC)')
FileWriteLine($file, 'myRecipient.Resolve')
FileWriteLine($file, 'If Not myRecipient.Resolved Then')
FileWriteLine($file, ' MsgBox "unknown recipient"')
FileWriteLine($file, 'Else')
FileWriteLine($file, ' newMail.Recipients.Add(myRecipient)')
;FileWriteLine($file, ' newMail.Attachments.Add(MessageAttachment)')
FileWriteLine($file, ' newMail.Send')
FileWriteLine($file, 'End If')
FileWriteLine($file, 'Set ol = Nothing')
FileClose($file)
Sleep(100)
Run('wscript.exe "'&@scriptdir&'\email2.vbs"',@scriptdir)
sleep(1000)
FileDelete(@scriptdir&"\email2.vbs")
在使用SMTP发送MAiL时,您将有一个选项是“IsHTML”。找到它。在.Net它是'IsBodyHtml'布尔值。 [This](http://stackoverflow.com/questions/3918747/send-an-email-with-autoit)可能会帮助你 –
https://www.autoitscript.com/wiki/OutlookEX_UDF_-_Mail_Item –