现在的位置: 首页 > 综合 > 正文

imap 收发邮件

2013年05月31日 ⁄ 综合 ⁄ 共 2293字 ⁄ 字号 评论关闭

pop3可以发也可以收也比较简单就是功能不强大  它还需要注册到计算机

收取的时候返回的是全部数据  getunreadmessage()不支持了

 

imap  引用LumiSoft.Net.Dll  就行 不需要注册到计算机  dll下载  http://files.cnblogs.com/0banana0/LumiSoft.Net.rar

 

获取未读(有bug)

 /// <summary>
        /// 获取未读邮件
        /// </summary>
        /// <param name="mailServer">邮件服务器地址</param>
        /// <param name="username">邮箱用户名</param>
        /// <param name="password">邮箱密码</param>
        /// GetUnReadMails("smtp.exmail.qq.com", "****", "****");
        public static void GetUnReadMails(string mailServer, string username, string password)
        {
            IMAP_Client IMAPServer = new IMAP_Client();
            try
            {
                //连接邮件服务器通过传入邮件服务器地址和用于IMAP协议的端口号
                IMAPServer.Connect(mailServer, 143);
                //登陆邮箱
                IMAPServer.Authenticate(username, password);
                IMAPServer.SelectFolder("INBOX");
                IMAP_SequenceSet set = new IMAP_SequenceSet();
                int count1 = IMAPServer.GetUnseenMessagesCount();//邮件未读的条数
                int count2 = IMAPServer.MessagesCount;//邮件总数
                set.Parse(string.Format("{0}:{1}", count1, count2));//获取未读
                IMAP_FetchItem[] items =
                    IMAPServer.FetchMessages(set, IMAP_FetchItem_Flags.Envelope | IMAP_FetchItem_Flags.Header | IMAP_FetchItem_Flags.Message | IMAP_FetchItem_Flags.MessageFlags | IMAP_FetchItem_Flags.UID, true, false);
                foreach (IMAP_FetchItem item in items)
                {
                    if (item.MessageData == null) continue;
                    byte[] data = item.MessageData;
                    string body = System.Text.Encoding.Default.GetString(data);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                IMAPServer.Disconnect();
            }
        }

 发邮件

 static public void SendMail()
    {
        string sendTo="111@qq.com";
        string sendCc = "222@qq.com";
        string subject = "subjrct";
        string body="body";
        string accountName = "333@qq.com";
        string password = "chwl1234";
        string smtpServer = "smtp.exmail.qq.com";
        int smtpPort = 143;
        //.net smtp 
        System.Web.Mail.MailMessage mailmsg = new System.Web.Mail.MailMessage();
        mailmsg.To = sendTo;
        mailmsg.Cc = sendCc;
        //mailmsg.Cc = cc;
        mailmsg.Subject = subject;
        mailmsg.Body = body;
            
            //附件地址
        string Attachment = @"F:\\文档\\dll\\LumiSoft.Net.dll";
            //附件处理
        mailmsg.Attachments.Add(new System.Web.Mail.MailAttachment(Attachment));
        //sender here
        mailmsg.From = accountName;
        // certify needed  
        mailmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");//1 is to certify
        //the user id   
        mailmsg.Fields.Add(
            "http://schemas.microsoft.com/cdo/configuration/sendusername",
            accountName);
        //the password
        mailmsg.Fields.Add(
            "http://schemas.microsoft.com/cdo/configuration/sendpassword",
             password);

        System.Web.Mail.SmtpMail.SmtpServer =smtpServer;
        try
        {
            System.Web.Mail.SmtpMail.Send(mailmsg);
        }
        catch(Exception ex)
        { 
            
        }

  

 

 

抱歉!评论已关闭.