POP3协议接收附件的C#例子

 大家都知道,SMTP/POP3是基于文本型的交互协议,由于整个协议解析过程比较冗长,牵涉到socket编程以及字符处理两个大块内容,因此一般情况下不太愿意在一个项目里面自己来做这块,所谓轮子不用自己造,还是拿来主义实在,毕竟是项目开发而不是产品开发,效率是至关重要的,分析一下如下C#的3个著名的开源平台:

   http://www.codeproject.com

   http://sourceforge.net/

   http://www.codeguru.com

   我们发现http://hpop.sourceforge.net/有个不错的开源组件可供我们采用,因此才有如下的快速实现代码。

        static void Main(string[] args)
        {
            string userName = "xxxx";
            string userPassword = "xxxx";
            string pop3HostName = "xxxxx";

            using (Pop3Client client = new Pop3Client())
            {
                // Connect to the server
                client.Connect(pop3HostName, 110, false);

                // Authenticate ourselves towards the server
                client.Authenticate(userName, userPassword);

                // Get the number of messages in the inbox
                int messageCount = client.GetMessageCount();

                // We want to download all messages
                List<Message> allMessages = new List<Message>(messageCount);

                // Messages are numbered in the interval: [1, messageCount]
                // Attension: message numbers are 1-based.
                for (int i = 1; i <= messageCount; i++)
                {
                    Message message = client.GetMessage(i);
                    List<MessagePart> attachments = message.FindAllAttachments();

                    Console.WriteLine(String.Format("Message\attachment:{0}|{0}", i, attachments.Count));
                    foreach (MessagePart attachment in attachments)
                    {
                        FileInfo fi = new FileInfo(@"d:\share\"  + attachment.FileName);
                        attachment.Save(fi);
                    }
                }

                // disconnect and release resource occupation.
                client.Disconnect();
            }
        }

别忘了添加如下的引用部分:

    using System.IO;
    using OpenPop.Common;
    using OpenPop.Mime;
    using OpenPop.Pop3;

整个实现过程不过才短短15分钟,还是拿来主义效率高啊。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值