c# 利用IMap 收取163邮件
2018-02-24 14:10
513 查看
最近我要做一个爬虫。这个爬虫需要如下几个步骤:
1 填写注册内容(需要邮箱注册)
2 过拖拽验证码(geetest)
3 注册成功会给邮箱发一封确认邮箱
4 点击确认邮箱中的链接 完成注册
我这里就采用163邮箱注册。
邮箱协议有 pop3 和 imap 和 smtp
我试了pop3 不能够筛选邮件 例如筛选未读 和 发件人这2个条件 所以放弃用pop3
imap协议是支持的。
我就找了一个开源的第三方lib:S22.Imap
用法很简单:
public void Test163() { var imapServer = "imap.163.com"; var port = 993; using (ImapClient client = new ImapClient(imapServer, port, "xxxx@163.com", "pwd", AuthMethod.Login, true)) { // Returns a collection of identifiers of all mails matching the specified search criteria. IEnumerable<uint> uids = client.Search(SearchCondition.Unseen()); // Download mail messages from the default mailbox. IEnumerable<MailMessage> messages = client.GetMessages(uids,FetchOptions.HtmlOnly); Console.WriteLine("We are connected!"); } }
发现 在login的时候 报错了:
提示“NO Select Unsafe Login. Please contact kefu@188.com for help”。
163邮箱也会收到一个告警邮件
经过查证 发现得需要在发送 login 命令之前 得先发送 id 命令
至于为什么要这么做 我的理解是得先伪装成普通的客户端吧(有理解错误请指出谢谢)
我fork了一份SS2.imap的代码 打算兼容163的这个特殊情况改掉源码
然后走Login方法就不会报错了
Github地址:https://github.com/yuzd/S22.Imap
相关文章推荐
- c# 利用MailKit.IMap 收取163邮件
- c#使用IMap收取163邮件的方法示例
- 使用c#+IMap实现收取163邮件
- php imap 收取邮件及其附件
- 简单java应用 利用javamail收取邮件
- 关于C#如何利用QQ邮箱SMTP发送邮件
- 基于C#平台下利用POP3和SMTP协议的邮件归档系统
- 利用JavaMail实现邮件的收取
- c#利用jmail发送邮件
- 20150322 利用pop3来收取邮件
- Jmail:C# 利用Jmail属性,接收邮件
- 利用SMTP发送邮件(C#)
- C# 实现邮件收取发送功能
- vs.net2005中使用利用cdo.message发送邮件(以asp.net/c#为例)
- c#利用webmail邮件系统发送邮件示例分享
- Jmail 介绍 及其 利用Jmail接收邮件 (C#)
- 20150322 利用pop3来收取邮件
- Python3+smtplib+poplib+imaplib实现发送和收取邮件(以qq邮箱为例)
- C# jmail收取邮件(带附件)
- c#通过IMAP协议获取未读邮件数量