欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

请问一个木瓜的收邮件的myfll的有关问题,请高手帮忙指点一下,多谢

更新时间: 2014-01-05 02:27:13 责任编辑: Author_N1

 

请教一个木瓜的收邮件的MYFLL的问题,请高手帮忙指点一下,谢谢!
 
Set Library To myfll
hPop3=Pop3Create("pop.163.com","帐号","密码")
If hPop3==""
    MessageBox("无法连接服务器")
    Return 
EndIf 

nCount=Pop3AMailList(hPop3,"aMail")  &&邮件个数

If nCount<0
    ?"无法取得邮件信息"
    Pop3Close(hPop3)
    Return 
EndIf

For x=1 to 2  &&把2改成nCount可以下载每一封邮件
    
    cMailBody=Pop3GetMail(hPop3,aMail[x,1])   &&下载邮件

    * StrToFile(cMailBody,"mail"+Transform(x)+".eml")  &&把邮件保存到磁盘
    
    *下面这段代码,使用网友 流星雨 写的解码程序,对邮件进行解码
    oMail =  NEWOBJECT('Mail')
    oMail.LoadEML(cMailBody)   &&这里解析邮件

    ?'发件人:',oMail.Sender
    ?'收件人:',oMail.Recever
    ?'抄送:',oMail.CC
    ?'发件日期:',oMail.SendDateTime 
    ?'邮件主题:',oMail.Subject
    ?'附件数量:',oMail.Contents.Count
    *?'邮件正文:',oMail.BodyText
    *?'邮件HTML正文:',oMail.BodyHtml
    FOR i = 1 TO oMail.Contents.Count  &&遍历每一个附件
        ?'第',ALLTRIM(STR(i)),'个附件名称:',oMail.Contents(i).Name
        ?'文件内容在oMail.Contents(',ALLTRIM(STR(i)),').Value中'
    ENDFOR
EndFor 

Pop3Close(hPop3)

Set Library To 


*-------------------------------------------------------------------------------
*类    名:Mail
*功  能:对邮件进行解码
*作  者:流星雨
*备  注:
*-------------------------------------------------------------------------------


DEFINE CLASS 'Mail' AS Custom
    Mail = ""
    Subject = "" &&主题

    Recever = "" &&收件人

    Cc = "" &&抄送

    Sender = "" &&发件人

    SendDateTime = "" &&发送时间

    BodyText = "" &&文本正文

    BodyHtml = "" &&HTML正文

*----------------------------------------
    PROCEDURE LoadEML    &&加载邮件

    LPARAMETERS cMail,lMailType
    *参数:cMail 字符串形式邮件或文件形式邮件
    *参数:lMailType 0 字符串形式 1文件形式 此参数可省略,默认为0
    IF VARTYPE(lMailType)="L" OR lMailType = 0
        This.Mail = cMail
        RELEASE cMail
    ELSE
        IF FILE(cMail,1) AND JUSTEXT(cMail) = "EML"
            This.Mail = FILETOSTR(cMail)
        ELSE
            MESSAGEBOX('文件不存在或格式不对',48,'错误')
            RETURN
        ENDIF
    ENDIF
    AddProperty(This,"Contents",NewObject("Collection"))
    *--------------发件人
    This.Sender = This.Decode(CHRTRAN(STREXTRACT(This.Mail,CHR(10)+'From:',CHR(13)),'"',''))
    *--------------收件人
    This.Recever = STREXTRACT(This.Mail,CHR(10)+'To:',':')
    This.Recever = SUBSTR(This.Recever,1,RAT(CHR(13),This.Recever)-1)
    This.Recever = This.Decode(This.Recever)
    *--------------抄送
    This.Cc = STREXTRACT(This.Mail,CHR(10)+'Cc:',':')
    This.Cc = SUBSTR(This.Cc ,1,RAT(CHR(13),This.Cc)-1)
    This.Cc = This.Decode(CHRTRAN(This.Cc,CHR(13)+CHR(10),''))
    *--------------发送日期,格式我没有转换,偷个小懒:)
    This.SendDateTime = STREXTRACT(This.Mail,CHR(10)+'Date: ',CHR(13)) &&

    This.SendDateTime = STREXTRACT(This.SendDateTime,', ',' +')
    *--------------邮件主题
    This.Subject = STREXTRACT(This.Mail,CHR(10)+'Subject:',CHR(13))
    DO WHILE .T.    &&防止多行主题,主题明明是一段话却编码成两行,可能是因为有换行符号CHR(10)存在,不知道怎么会允许这种情况存在

        IF SUBSTR(This.Mail,AT(This.Subject+CHR(13),This.Mail)+LEN(This.Subject)+2,1) = "    "
            This.Subject = This.Subject +CHR(13)+CHR(10)+ STREXTRACT(This.Mail,This.Subject+CHR(13),CHR(13))
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:27:13
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/9956/
本文WWW.DOC100.NET DOC100.NET版权所有。