AHK:发送电子邮件问题

时间:2016-05-30 19:40:46

标签: autohotkey

我使用以下代码使用AHK发送电子邮件。它在我在主题和消息体中使用文字字符串时有效。但是,当我尝试使用%variable%时,收到的结果电子邮件具有空白主题/邮件正文。

Order := 
Order = %Order% `n FAX MESSAGE
Order = %Order% `n
Order = %Order% `n Sent: %DateString% %TimeString%

pmsg            := ComObjCreate("CDO.Message")
pmsg.From       := """Lens Shapers"" <fax@l******s.com>"
pmsg.To         := "k*******r@gmail.com"
pmsg.BCC        := "" 
pmsg.CC         := "" 
pmsg.Subject    := "Lenses are Ready" **;THIS SUBJECT IS TRANSMITTED GOOD**
pmsg.TextBody   := %Order% **;THIS MESSAGE BODY IS BLANK WHEN EMAIL IS RECEIVED**
sAttach         := "" 

fields := Object()
fields.smtpserver   := "smtp.gmail.com" ; specify your SMTP server
fields.smtpserverport     := 465 ; 25
fields.smtpusessl      := True ; False
fields.sendusing     := 2   ; cdoSendUsingPort
fields.smtpauthenticate     := 1   ; cdoBasic
fields.sendusername := "k*****f@l******s.com"
fields.sendpassword := "PASSWORD"
fields.smtpconnectiontimeout := 60
schema := "http://schemas.microsoft.com/cdo/configuration/"

pfld :=   pmsg.Configuration.Fields

For field,value in fields
    pfld.Item(schema . field) := value
pfld.Update()

Loop, Parse, sAttach, |, %A_Space%%A_Tab%
  pmsg.AddAttachment(A_LoopField)
pmsg.Send()

1 个答案:

答案 0 :(得分:1)

它应该可以工作,但是当你在表达式中使用变量时,你不使用%,而当你使用“:=”这是一个表达式的赋值时。所以试试:

pmsg.TextBody   := Order

因为这应该有效。如果您还需要文本元素,则需要在文字和点连接周围使用引号:

pmsg.TextBody   := "Order: " . Order . "`n`n"  ;  also follows with 2 new lines

H个,