zoukankan      html  css  js  c++  java
  • 使用OpenPop.dll开发读取POP3邮件程序

    1、设置邮件的pop3

    以163网易邮箱为例:

    https://jingyan.baidu.com/article/adc81513804be9f722bf7350.html

    2、下载OpenPop.dll

    官网下载地址:http://sourceforge.net/projects/hpop/

    3、读取设置pop3邮箱的所有邮件内容:

     public class Pop3Helper
        {
            public static void ReadPop3()
            {
                using (Pop3Client client = new Pop3Client())
                {
                    if (client.Connected)
                    {
                        client.Disconnect();
                    }
    
                    // Connect to the server, false means don't use ssl
                    client.Connect("pop3.163.com", 110, false);
    
                    // Authenticate ourselves towards the server by email account and password
                    client.Authenticate("xxx@163.com", "pop3授权码");
    
                    //email count
                    int messageCount = client.GetMessageCount();
    
                    for (int i = 1; i <= messageCount; i++)
                    {
                        Message message = client.GetMessage(i);
    
                        NameValueCollection customHeaders = message.Headers.UnknownHeaders;
                        string sender = message.Headers.From.DisplayName;
                        string from = message.Headers.From.Address;
                        string subject = message.Headers.Subject;
                        DateTime Datesent = message.Headers.DateSent;
    
                        MessagePart messagePart = message.MessagePart;
    
                        GetCustomInfo(customHeaders);
    
                        //email body
                        string body = " ";
                        if (messagePart.IsText)
                        {
                            body = messagePart.GetBodyAsText();
                        }
                        else if (messagePart.IsMultiPart)
                        {
                            MessagePart plainTextPart = message.FindFirstPlainTextVersion();
                            MessagePart htmlTextPart = message.FindFirstHtmlVersion();
                            if (htmlTextPart != null)
                            {
    
                                body = htmlTextPart.GetBodyAsText();
                            }
    
                            if (plainTextPart != null)
                            {
                                
                                body = plainTextPart.GetBodyAsText();
                            }
                            else
                            {
                                List<MessagePart> textVersions = message.FindAllTextVersions();
                                if (textVersions.Count >= 1)
                                    body = textVersions[0].GetBodyAsText();
                                else
                                    body = "<<OpenPop>> Cannot find a text version body in this message.";
                            }
                        }
    
                    }
    
                }
            }
    
            //获取自定义字段内容
            private static void GetCustomInfo(NameValueCollection col)
            {
                if (col != null && col.Count > 0)
                {
                    foreach (var cHeaderKey in col.AllKeys)
                    {
                        switch (cHeaderKey)
                        {
                            case "X-CamId":
                                Console.WriteLine(string.Format("CamId:{0}", col[cHeaderKey]));
                                break;
                            case "X-SubId":
                                Console.WriteLine(string.Format("SubId:{0}", col[cHeaderKey]));
                                break;
                            case "X-UserId":
                                Console.WriteLine(string.Format("UserId:{0}",  col[cHeaderKey]));
                                break;
                            default:
                                break;
                        }
                        
                    }
    
                }
            }
        }
  • 相关阅读:
    概率算法_二项分布和泊松分布
    数据库_存储过程简介(oracle版)
    机器学习算法_knn(福利)
    统计算法_概率基础
    统计算法_数值/线性关系度量
    Python总结
    Python 冒泡排序法分析
    Oracle练习详解
    LINUX基础了解
    LINUX下OA搭建
  • 原文地址:https://www.cnblogs.com/zoro-zero/p/7553380.html
Copyright © 2011-2022 走看看