什么是 SMTP 协议?

SMTP(Simple Mail Transfer Protocol),即简单邮件传输协议,是用于在网络上传输电子邮件的协议。它定义了邮件客户端与服务器之间,以及服务器与服务器之间如何传输邮件。在使用 AHK 发送邮件时,需要通过 SMTP 协议与邮件服务器通信,以实现邮件的发送功能。

什么是授权码?

由于安全原因,QQ 邮箱在使用第三方客户端(如 AHK 脚本)发送邮件时,不直接使用邮箱密码,而是使用授权码。授权码是由 QQ 邮箱生成的一串特殊密码,用于在第三方应用中登录和发送邮件。在使用 AHK 脚本发送 QQ 邮件时,需要在邮箱设置中开启 SMTP 服务,并获取相应的授权码。

 

; 另一个链接:https://www.autohotkey.com/boards/viewtopic.php?f=6&t=71493

; http://jdev.tw/blog/5731/autohotkey-sendmail   【有youtube解释视频】
; 用命令行直接透過Gmail寄信,可以快速寄出電子書檔案給Kindle接收
#SingleInstance Force

sFileName := A_Args[1]  ;; 傳入參數必須帶有路徑
if (sFileName = "") {
  MsgBox 必須傳入完整檔名
  return
}  
pmsg := ComObjCreate("CDO.Message")
;;pmsg.Charset := "UTF-8"
pmsg.From := """SendByAHK"" <你的Gmail帳號@gmail.com>"
pmsg.To := "你的Kindle帳號@kindle.com"
pmsg.BCC := ""   ; Blind Carbon Copy, Invisable for all, same syntax as CC
pmsg.CC := ""   
pmsg.Subject := "傳送Kindle檔名:" . sFileName

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

;;MsgBox %sFileName%
sAttach := sFileName ; 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帳號@gmail.com"
fields.sendpassword := "你的Gmail帳號密碼"
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()

 

声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。