C# jmail收取邮件(带附件)

来源:互联网 发布:淘宝怎么看别人的销量 编辑:程序博客网 时间:2024/06/02 23:19
/* jmail组件的使用方法在网上很容易找到 */
//测试邮箱地址为 recieveceshi@163.com
POP3 pop = new POP3();
try
{
    //创建连接
    pop.Connect("recieveceshi", "qwerty", "pop.163.com");
    //收取邮件数量
    int emailCount = pop.Count;
    for (int i = 1; i <= emailCount; i++)
    {
        /* 
            * i 要从1开始循环,因为pop.Messages[i]的索引是从1开始的,这个有点怪
            * 获取邮件在服务器端的唯一标识,很重要的一个东西。本例中没有用到,但也提一下

            * string emailUID = pop.GetMessageUID(i);

    * 细节可以看下这个:jmail收取未读邮件(带附件)

            */


        //下载pop3获取的信息中索引为i的邮件。
        //pop.Messages[i]和pop.DownloadSingleMessage(i)基本是等效的

        jmail.Message emailMessage = pop.DownloadSingleMessage(i);
        //服务器端收信时间
        DateTime recieveTime = emailMessage.Date;
        //收件人
        string recieveMan = emailMessage.RecipientsString;
        //发件人email地址
        string fromMan = emailMessage.From;
        //发件人昵称
        string fromManName = emailMessage.FromName;
        //邮件主题
        string subject = emailMessage.Subject;
        // 邮件主体内容, HTML格式:emailMessage.HTMLBody
        string body = emailMessage.Body;


        //邮件的附件处理
        //每封邮件的所有附件

        jmail.Attachments attachments = emailMessage.Attachments;
        /* jmail.Attachments 索引正常,从0开始就好 */
        for (int j = 0; j < attachments.Count; j++)
        {
            //根据索引取附件
            jmail.Attachment attachment = attachments[j];
            //附件名
            string fileName = attachment.Name;
            //附件保存在指定路径,不要有同名文件,否则出异常
            attachment.SaveToFile(@"C:\" + fileName);
        }
        /*
            * 根据索引删除邮件,读取完成就删除
            * pop.DeleteSingleMessage(i);
            */ 



            /**** 先下载邮件,之后有必要时再删除邮件****/

            /* 
            * jmail 删除邮件的解决方案

            */
    }
    //断开连接
    pop.Disconnect();

    MessageBox.Show("海上升明月,天涯共此时。");

}
catch
{
    MessageBox.Show("片云天共远,永夜月同孤。");

}


/**完成时间 2014-8-26**/
0 0