c#中邮件收发处理(POP3,IMAP,SMTP)

时间:2022-12-09 00:27:07

 c#中邮件收发处理(POP3,IMAP,SMTP)

本文涉及的内容:
1:自己制作Pop3Helper
   信件格式的处理有麻烦
2:使用现成的pop3类
   LumiSoft.Net.POP3.Client;
      有两种处理方法
3:使用IMAP收邮件
      功能似乎更多,比起pop3来。
4:SMTP发送邮件
   关于 Mailbox unavailable. The server response was: 5.7.1 Unable to relay for xx 的错误处理

自己写一个POP3的接收程序并不是很简单。主要问题就是如何处理信件的格式。
其处理方法不是太复杂,用一个tcp联接就可以了。
这是代码
    

。。。。。
但是这种方式的一个问题就是关于解析信件的格式。如果是附件的话,他也直接给出了二进制,不容易使用。
所以,可以使用一个现成的工具:LumiSoft.Net.POP3.Client。这里面已经给写好了实现,用起来也很简单。
这是一个简单的用法(这里使用了两种处理方式,前一种是不建议使用的)
。。
            。。。
取得的邮件可以这要给获得。
   。。。
除此之外,它提供的另外一个工具是IMAP,它操作起来更加方便。代码如下:

   
。。
上边都是如何收邮件。
关于如何发送邮件是比较简单的。这里提供两种方式。
第一种方式是使用网上的smtp。这种方式必须要提供用户名和密码。这个适合于web应用,使用的smtp也是网上的,我一般使用163的smtp,基本没有问题。
第二种方式是使用本地的smtp。不需要提供密码,用户也可以是不存在的(垃圾邮件是不是就是这么产生的?),但是必要要提供smtp端口号。
第二种方法测试的时候有时候会报错“Mailbox unavailable. The server response was: 5.7.1 Unable to relay for xxx”,查过资料之后(在baidu上没找到,还是google信息多一点),才发现问题原来是IIS里SMTP服务的配置有问题。
这样修改可以解决:到开SMTP属性—>Access页面Reply Restrictions/ Reply-Only this Below选项,加上自己的ip:127.0.0.1(允许本机,使用loalhost,如果是允许其他机器,类似设置)
代码如下