读取eml邮件文件

;需要Autohotkey 1.1+
;thinkai@vip.qq.com 2015-03-04
;结构
;Mail["From"] 发件人
;Mail["To"] 收件人
;Mail["Subject"] 主题
;Mail["CC"] 抄送
;Mail["BCC"] 暗送
;Mail["SentOn"] 发送时间
;Mail["ReceivedTime"] 服务器接收时间
;Mail["TextBody"] 文本正文
;Mail["HTMLBody"] Html正文
;Mail["AttachCount"] 附件数量
;Mail["Attachments"][1]["name"] 附件1文件名
;Mail["Attachments"][1]["file"] 附件1文件释放后的文件路径

;示例:
mail := ReadEmlFile("mail2.eml")
msgbox, 64, 提示, % "邮件" mail["From"] "发给" mail["Subject"] "的邮件“" mail["Subject"] "”的附件已经释放到邮件目录下!"




ReadEmlFile(file,attach_output_dir:=""){
Mail := []
IfNotExist % file
	return
SplitPath, file, , dir
if !dir
	file := A_ScriptDir "" file
try
{
;读取文件到二进制流
oADO := ComObjCreate("adodb.stream")
oADO.Type := 1 ;二进制
oADO.Mode := 3 ;读写
oADO.Open()
oADO.LoadFromFile(file)

;读取邮件
oMsg := ComObjCreate("CDO.Message")
oMsg.DataSource.OpenObject(oADO, "_stream")
} catch e{ ;出错
	return e
}
oADO.Close() ;释放

Mail["From"] := oMsg.From,Mail["To"] := oMsg.To,Mail["Subject"] := oMsg.Subject
Mail["CC"] := oMsg.CC,Mail["BCC"] := oMsg.BCC
Mail["SentOn"] := oMsg.SentOn,Mail["ReceivedTime"] := oMsg.ReceivedTime
Mail["TextBody"] := oMsg.TextBody,Mail["HTMLBody"] := oMsg.HTMLBody
Mail["AttachCount"] := oMsg.Attachments.Count

If !attach_output_dir
	SplitPath, file, , attach_output_dir
IfNotExist, attach_output_dir
	FileCreateDir, % attach_output_dir

if (Mail["AttachCount"]>0)
	Mail["Attachments"] := []
Loop % Mail["AttachCount"]
{
	FileName := oMsg.Attachments[A_Index].FileName,Attachments.insert({"name":FileName,"file":attach_output_dir "" FileName})
	oMsg.Attachments[A_Index].SaveToFile(attach_output_dir "" FileName) ;此处完整路径
}
return Mail
}

给TA捐赠
共{{data.count}}人
人已捐赠
其他

获取鼠标位置-feiyue

2020-3-9 5:28:44

其他教程

输出excel数据到GUI

2020-3-9 5:56:44

个人中心
购物车
优惠劵
有新私信 私信列表
搜索