需要通过SMTP和自动热键发送电子邮件(gmail)。

需要通过SMTP和自动热键发送电子邮件(gmail)。,gmail,autohotkey,Gmail,Autohotkey,我在Windows7上使用了下面的代码,一切正常,但当我在Windows10上使用相同的代码时,它停止了工作,并给了我下面发现的错误 在windows 7中用于我的代码: pmsg := ComObjCreate("CDO.Message") pmsg.From := """John Agius"" <something@gmail.com>" pmsg.To := "somtehting@gmail.com" pmsg.BCC := "" pmsg.CC := "" pmsg.Su

我在Windows7上使用了下面的代码,一切正常,但当我在Windows10上使用相同的代码时,它停止了工作,并给了我下面发现的错误

在windows 7中用于我的代码:

pmsg := ComObjCreate("CDO.Message")
pmsg.From := """John Agius"" <something@gmail.com>"
pmsg.To := "somtehting@gmail.com"
pmsg.BCC := ""
pmsg.CC := ""
pmsg.Subject := "Message / Note"
pmsg.TextBody :=emailtosomeone
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 := "user@gmail.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()
pmsg.Send()
pmsg:=ComObjCreate(“CDO.Message”)
pmsg.From:=“John Agius”
pmsg.To:=”somtehting@gmail.com"
pmsg.BCC:=“”
pmsg.CC:“”
pmsg.主题:=“消息/注释”
pmsg.TextBody:=emailtosomeone
字段:=对象()
fields.smtpserver:=“smtp.gmail.com”;指定您的SMTP服务器
fields.smtpserverport:=465;25
fields.smtpusesl:=True;假的
fields.sendusing:=2;cdoSendUsingPort
fields.smtpauthenticate:=1;cdoBasic
fields.sendusername:=”user@gmail.com"
fields.sendpassword:=“密码”
fields.smtpconnectiontimeout:=60
架构:=”http://schemas.microsoft.com/cdo/configuration/"
pfld:=pmsg.Configuration.Fields
对于字段,字段中的值
pfld.Item(schema.field):=值
pfld.Update()
pmsg.Send()
在Windows10中,它给了我以下错误

错误:0x800CCE05 资料来源:CDO.Message.1 描述:在此消息中找不到请求的正文部分 帮助文件(空) 帮助上下文:0

特别是来自; ;布拉布拉布拉布拉布拉工作代码 ------->pmsg.From:=“John Agius”

谁能帮帮我吗?我真的需要这个来完成我的工作

谢谢


约翰·阿吉乌斯(John Agius)

嗯,这个错误是指一具失踪的尸体。因此,您的电子邮件中可能缺少实际的文本消息(TextBody或HtmlBody)。您的变量emailtosomeone是否已定义?
请尝试以下代码:

pmsg            := ComObjCreate("CDO.Message")
pmsg.From       := """AHKUser"" <...@gmail.com>"
pmsg.To         := "anybody@somewhere.com"
pmsg.BCC        := ""   ; Blind Carbon Copy, Invisable for all, same syntax as CC
pmsg.CC         := "Somebody@somewhere.com, Other-somebody@somewhere.com"
pmsg.Subject    := "Message_Subject"

;You can use either Text or HTML body like
pmsg.TextBody   := "Message_Body"
;OR
;pmsg.HtmlBody := "<html><head><title>Hello</title></head><body><h2>Hello</h2><p>Testing!</p></body></html>"


sAttach         := "Path_Of_Attachment" ; can add multiple attachments, the delimiter is |

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 := "...@gmail.com"
fields.sendpassword := "your_password_here"
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()
pmsg:=ComObjCreate(“CDO.Message”)
pmsg.From:=“AHKUser”
pmsg.To:=”anybody@somewhere.com"
pmsg.BCC:=“”;盲目复写,所有人都看不见,语法与CC相同
pmsg.CC:=”Somebody@somewhere.com,其他-somebody@somewhere.com"
pmsg.Subject:=“消息主题”
;您可以使用文本或类似HTML的正文
pmsg.TextBody:=“消息体”
;或
;pmsg.HtmlBody:=“你好,正在测试!

” sAttach:=“附件的路径”;可以添加多个附件,分隔符为| 字段:=对象() fields.smtpserver:=“smtp.gmail.com”;指定您的SMTP服务器 fields.smtpserverport:=465;25 fields.smtpusesl:=True;假的 fields.sendusing:=2;cdoSendUsingPort fields.smtpauthenticate:=1;cdoBasic fields.sendusername:=“..@gmail.com” fields.sendpassword:=“此处为您的密码” fields.smtpconnectiontimeout:=60 架构:=”http://schemas.microsoft.com/cdo/configuration/" pfld:=pmsg.Configuration.Fields 对于字段,字段中的值 pfld.Item(schema.field):=值 pfld.Update() 循环、解析、sAttach、|、%A_空格%%A_标签% pmsg.AddAttachment(A_LoopField) pmsg.Send()

由于某种原因,在我编辑了这段代码之后,可能会重复“谢谢”的内容,但它仍然有效。甚至我的旧代码也开始工作了。我不知道发生了什么。“如果你的问题不可复制,你可能会考虑删除你的问题。”另一方面,如果这个答案有助于解决你的问题,请接受它。毕竟,这是一个很好的代码示例。