欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用c#+IMap實(shí)現(xiàn)收取163郵件

 更新時(shí)間:2018年02月28日 08:50:10   作者:魚東東  
本文給大家推薦的是使用c#+IMap實(shí)現(xiàn)收取163郵件的具體方法和示例代碼,并附上了smtp郵箱發(fā)送郵件的代碼,有需要的小伙伴可以參考下

最近我要做一個(gè)爬蟲。這個(gè)爬蟲需要如下幾個(gè)步驟:

1 填寫注冊(cè)內(nèi)容(需要郵箱注冊(cè))

2 過拖拽驗(yàn)證碼(geetest)

3 注冊(cè)成功會(huì)給郵箱發(fā)一封確認(rèn)郵箱

4 點(diǎn)擊確認(rèn)郵箱中的鏈接 完成注冊(cè)

我這里就采用163郵箱注冊(cè)。

郵箱協(xié)議有 pop3 和 imap 和 smtp

我試了pop3  不能夠篩選郵件 例如篩選未讀 和 發(fā)件人這2個(gè)條件 所以放棄用pop3

imap協(xié)議是支持的。

我就找了一個(gè)開源的第三方lib:S22.Imap

用法很簡(jiǎn)單:

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!");
      }

    }
 

發(fā)現(xiàn) 在login的時(shí)候 報(bào)錯(cuò)了:

提示“NO Select Unsafe Login. Please contact kefu@188.com for help”。

163郵箱也會(huì)收到一個(gè)告警郵件

 

經(jīng)過查證 發(fā)現(xiàn)得需要在發(fā)送 login 命令之前 得先發(fā)送 id 命令

至于為什么要這么做 我的理解是得先偽裝成普通的客戶端吧(有理解錯(cuò)誤請(qǐng)指出謝謝)

我fork了一份SS2.imap的代碼 打算兼容163的這個(gè)特殊情況改掉源碼

 

 

然后走Login方法就不會(huì)報(bào)錯(cuò)了

 Github地址:https://github.com/yuzd/S22.Imap

另外附上使用smtp發(fā)送郵件的實(shí)例
protected void Button2_Click(object sender, EventArgs e)
  {
    System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();
    client.Host = "smtp.163.com";//使用163的SMTP服務(wù)器發(fā)送郵件
    client.UseDefaultCredentials = true; 
    client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network; 
    client.Credentials = new System.Net.NetworkCredential("用戶名", "密碼");//163的SMTP服務(wù)器需要用163郵箱的用戶名和密碼作認(rèn)證,如果沒有需要去163申請(qǐng)個(gè),                                     
    //這里假定你已經(jīng)擁有了一個(gè)163郵箱的賬戶,用戶名為abc,密碼為******* 
    System.Net.Mail.MailMessage Message = new System.Net.Mail.MailMessage();
    Message.From = new System.Net.Mail.MailAddress("上述用戶名密碼所對(duì)應(yīng)的郵箱地址");//這里需要注意,163似乎有規(guī)定發(fā)信人的郵箱地址必須是163的,而且發(fā)信人的郵箱用戶名必須和上面SMTP服務(wù)器認(rèn)證時(shí)的用戶名相同                                
    //因?yàn)樯厦嬗玫挠脩裘鸻bc作SMTP服務(wù)器認(rèn)證,所以這里發(fā)信人的郵箱地址也應(yīng)該寫為abc@163.com
    Message.To.Add("目標(biāo)郵箱地址");//將郵件發(fā)送給Gmail
    //Message.To.Add("123456@qq.com");//將郵件發(fā)送給QQ郵箱
    Message.Subject = "customer feedback";
    Message.Body = "customer feedback content"; 
    Message.SubjectEncoding = System.Text.Encoding.UTF8;
    Message.BodyEncoding = System.Text.Encoding.UTF8;
    Message.Priority = System.Net.Mail.MailPriority.High;
    Message.IsBodyHtml = true;
    client.Send(Message);
  }

相關(guān)文章

  • C#使用移位運(yùn)算符獲取漢字編碼的示例代碼

    C#使用移位運(yùn)算符獲取漢字編碼的示例代碼

    這篇文章主要為大家詳細(xì)介紹了C#如何使用移位運(yùn)算符獲取漢字編碼,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的小伙伴可以參考下
    2024-01-01
  • C#軟件注冊(cè)碼的實(shí)現(xiàn)代碼

    C#軟件注冊(cè)碼的實(shí)現(xiàn)代碼

    開發(fā)軟件時(shí),當(dāng)用到商業(yè)用途時(shí),注冊(cè)碼與激活碼就顯得很重要了,現(xiàn)在的軟件技術(shù)實(shí)在在強(qiáng)了,各種國內(nèi)外大型軟件都有注冊(cè)機(jī)制,但我們學(xué)習(xí)的是技術(shù)
    2013-05-05
  • 詳解C#如何為某個(gè)方法設(shè)定執(zhí)行超時(shí)時(shí)間

    詳解C#如何為某個(gè)方法設(shè)定執(zhí)行超時(shí)時(shí)間

    這篇文章主要為大家詳細(xì)介紹一下C#如何為某個(gè)方法設(shè)定執(zhí)行超時(shí)時(shí)間,文中的示例代碼簡(jiǎn)潔易懂,具有一定的借鑒價(jià)值,有需要的小伙伴可以學(xué)習(xí)一下
    2023-10-10
  • C#中的where泛型約束介紹

    C#中的where泛型約束介紹

    這個(gè)關(guān)于泛型約束的東西我看了幾天了。一直沒打看懂,我的領(lǐng)悟能力有點(diǎn)差,剛才突然明白了一點(diǎn)
    2013-04-04
  • 常用.NET工具(包括.NET可再發(fā)行包2.0)下載

    常用.NET工具(包括.NET可再發(fā)行包2.0)下載

    常用.NET工具(包括.NET可再發(fā)行包2.0)下載...
    2007-03-03
  • C#實(shí)現(xiàn)定義一套中間SQL可以跨庫執(zhí)行的SQL語句(案例詳解)

    C#實(shí)現(xiàn)定義一套中間SQL可以跨庫執(zhí)行的SQL語句(案例詳解)

    這篇文章主要介紹了C#實(shí)現(xiàn)定義一套中間SQL可以跨庫執(zhí)行的SQL語句,主要包括hisql查詢樣例、group by查詢、鏈?zhǔn)讲樵兗癶isql語句和鏈?zhǔn)讲樵兓煊玫膕ql語句,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • 深入c# 類和結(jié)構(gòu)的區(qū)別總結(jié)詳解

    深入c# 類和結(jié)構(gòu)的區(qū)別總結(jié)詳解

    本篇文章是對(duì)c#中類和結(jié)構(gòu)的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C#編程實(shí)現(xiàn)自定義熱鍵的方法

    C#編程實(shí)現(xiàn)自定義熱鍵的方法

    這篇文章主要介紹了C#編程實(shí)現(xiàn)自定義熱鍵的方法,涉及C#鍵盤按鍵設(shè)置的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-08-08
  • C# Console利用mspaint打開圖像并保存的方法

    C# Console利用mspaint打開圖像并保存的方法

    這篇文章主要介紹了C# Console利用mspaint打開圖像并保存的方法,涉及C#調(diào)用畫圖板操作圖片的相關(guān)技巧,需要的朋友可以參考下
    2016-01-01
  • c# Struct的一些問題分析

    c# Struct的一些問題分析

    在 C# 中,結(jié)構(gòu)體是值類型數(shù)據(jù)結(jié)構(gòu)。它使得一個(gè)單一變量可以存儲(chǔ)各種數(shù)據(jù)類型的相關(guān)數(shù)據(jù)。struct 關(guān)鍵字用于創(chuàng)建結(jié)構(gòu)體。結(jié)構(gòu)體是用來代表一個(gè)記錄。
    2021-06-06

最新評(píng)論