autoit+jmail.dll pop3 收邮件 求完善(有码)
本帖最后由 xzxnovice 于 2011-1-10 08:34 编辑RunWait(@ComSpec & " /c " & 'regsvr32 jmail.dll /s', "", @SW_HIDE)
_JmailGet("用户名", "密码", "pop.126.com", 110)
Func _JmailGet($Username, $Password, $PopServer, $port)
$popMail = ObjCreate("JMail.POP3") ;建立收邮件对象
$popMail.connect($Username, $Password, $PopServer)
If 0 < $popMail.Count Then
For $i = 1 To $popMail.Count
;取得一条邮件信息
$mailMessage = $popMail.Messages.item($i)
;~ $mailMessage=$mailMessages[$i]
;取得该邮件的附件集合
$atts = $mailMessage.Attachments
;设置邮件的编码方式
$mailMessage.Charset = "GB2312"
;设置邮件的附件编码方式
$mailMessage.Encoding = "Base64"
;是否将信头编码成iso-8859-1字符集
$mailMessage.ISOEncodeHeaders = False
;邮件的优先级
$txtpriority = $mailMessage.Priority
;邮件的发送人的信箱地址
$txtSendMail = $mailMessage.From
;邮件的发送人
$txtSender = $mailMessage.FromName
;邮件主题
$txtSubject = $mailMessage.Subject
;邮件内容
$txtBody = $mailMessage.Body
;邮件大小
$txtSize = $mailMessage.Size
ConsoleWriteError($txtSendMail & @CRLF & $txtSubject & @CRLF)
If $atts.count > 0 Then
ConsoleWriteError("有附件"&$atts.count &@CRLF)
For $j=0 To $atts.count-1
$att =$atts.item($j)
ConsoleWriteError("附件名:"&$att.Name&@CRLF)
$att.SaveToFile("e:\attFile\"& $i & @HOUR & @MIN &@SEC & @MSEC)
next
EndIf
Next
$att = 0
Else
ConsoleWriteError("没有新邮件!")
EndIf
;$popMail.DeleteMessages() 删除服务器上的邮件
$popMail.Disconnect()
$popMail = 0
EndFunc ;==>_JmailGet
测试用,代码比较简单,随便 看看
暂发现问题如下
1 返回的附件名称att.Name,是经编码的(中文会,英文不会,如=?GBK?B?0MK9qM7Esb7OxLW1LnR4dA==?=,知道怎样转过来,求解。。
2 $popMail.connect 如果连接失败时,不会返回错误信息,而是au3直接出错,提 示 ^error能不能捕捉这个异常 ..
3还有更多。。还在在研究
4 网上很多jmail.dll免费版没有pop3功能,所以很多人说用不了。提供一个100%可以用的,收点零花钱 1块
Jmail 4.4 专业版
自顶,还没有人回复!!自己解决了=?GBK?B 的解码,用BinaryToString(_Base64Decode($name))
但还遇到下面QP方式编码的不知怎样解。
=?GBK?Q?=D0=C2=BD=A8=CE=C4=B1=BE=CE=C4=B5=B5_(2).txt?= jmail是什么版本的? 本帖最后由 xzxnovice 于 2011-1-7 23:46 编辑
现在换个4.4专业版 回复 4# xzxnovice
要不要钱的?(要不要注册?) 代码收下,谢谢.... 本帖最后由 republican 于 2011-1-8 09:52 编辑
论坛有Pop3的UDF,你可以尝试一下。
解码规则参考Base64的编码方式。
=?GBK?B?0MK9qM7Esb7OxLW1LnR4dA==?= >> 新建文本文档.txt
QP就是二进制编码,所以解码方式既简单,又麻烦,因为不清楚其编码规则究竟是2位还是3位,不过对于中文来说,一般是3位。
=?GBK?Q?=D0=C2=BD=A8=CE=C4=B1=BE=CE=C4=B5=B5_(2).txt?= >> 新建文本文档_(2).txt pop3 收邮件 终于等到了! jmail.dll 4.5的可以用吗? 收藏乐。。。。。。。。。。。。 ...................... 回复 5# 83265358
网上下载的,只测试了一下能用,长期使用不知道会不会要注册。。之前发的那个 4.0个人版 ,朋友一直在用没问题。。 回复 7# republican
pop3 udf不及jmail好用吧。。。jmail把大部分问题都处理好了。 只是附件名称没去处理,实在费解。
不同服务器使用的编码又不同,分gbk gb1312 utf-8等,还分Q B两方式,我从网上找了个c# 的 解码算法,转成autoit了,基本能用一下。 回复 9# qq342252004
没找到 4.5 的专业版。。 本帖最后由 xzxnovice 于 2011-1-9 23:27 编辑
现在最大问题还是问题 2,比如登陆密码错的话,autoit直接出错了,没法处理这个错误啊。。
页:
[1]
2