C# 用 IMAP 收邮件
说到邮件收发的类,很多人都会介绍(推荐)我用LumiSoft.Net.dll这个类库。
但是谷歌了下,找的代码有的是说POP3收邮件,又不好用,有的还是过时的。很纠结。
对于我的简单需求,只要利用IMAP读取邮件(用来收激活邮件),就显得复杂了。
最后找到了另外一个IMAP收发邮件的类库,S22.IMAP,方便易用。
(S22.IMAP下载地址:
http://www.xiagegou.com/others/s22-imap-dll.html
http://pan.baidu.com/s/1032Rt )
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using S22.Imap; namespace _163pop3 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { } /* * * http://xiagegou.com * By im0khu * C#利用IMAP收邮件 * 首发oschina.net 转载请注明出处 */ private void btnFetch_Click(object sender, EventArgs e) { string ImapServer = "imap.163.com"; string ImapUserame = "xiagegou_com"; string ImapPwd = "password2013"; ImapClient imap = new ImapClient(ImapServer, 993, true); try { imap.Login(ImapUserame, ImapPwd, AuthMethod.Login); uint[] uids = imap.Search(SearchCondition.Subject("This's a test email")); // uint[] uids = imap.Search(SearchCondition.From("service@oschina.net")); // 也可以使用通过其它条件进行检索你的邮件 if (uids.Length > 0) { System.Net.Mail.MailMessage msg = imap.GetMessage(uids[0]); emailLst.Items.Add("Subject: " + msg.Subject); emailBody.Text = msg.Body; } else { emailLst.Items.Add("没有你要找的邮件"); } imap.Dispose(); } catch (InvalidCredentialsException) { MessageBox.Show("服务器拒绝连接,可能密码错误!"); imap.Dispose(); } } } }
转载请注明:Linc Hu » 写写代码:C# 用 IMAP 收邮件