您的位置:首页 > 编程语言 > C#

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

2014-08-26 23:25 190 查看
/* 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**/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息