日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

【C#】C#对电子邮件的收发操作

發布時間:2025/6/17 C# 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【C#】C#对电子邮件的收发操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄結構:

contents structure [+]
  • 簡介
  • 發送郵件
  • 讀取郵件
  • 1.簡介

    郵件傳輸常用的協議有,SMTP、POP3、IMAP4。他們都屬于TCP/IP協議,默認狀態下分別通過TCP端口25,110,和143建立鏈接。

    SMTP協議

    SMTP的全稱是“Simple Mail Transfer Protocol”,即簡單郵件傳輸協議。它是一組用于從源地址到目的地址傳輸郵件的規范,通過它來控制郵件的中轉方式。SMTP 協議屬于TCP/IP協議簇,它幫助每臺計算機在發送或中轉信件時找到下一個目的地。SMTP 服務器就是遵循SMTP協議的發送郵件服務器。SMTP認證,簡單地說就是要求必須在提供了賬戶名和密碼之后才可以登錄 SMTP 服務器,這就使得那些垃圾郵件的散播者無可乘之機。增加 SMTP 認證的目的是為了使用戶避免受到垃圾郵件的侵擾。

    ?

    POP協議

    POP郵局協議負責從郵件服務器中檢索電子郵件。它要求郵件服務器完成下面幾種任務之一:從郵件服務器中檢索郵件并從服務器中刪除這個郵件;從郵件服務器中檢索郵件但不刪除它;不檢索郵件,只是詢問是否有新郵件到達。POP協議支持多用戶互聯網郵件擴展,后者允許用戶在電子郵件上附帶二進制文件,如文字處理文件和電子表格文件等,實際上這樣就可以傳輸任何格式的文件了,包括圖片和聲音文件等。在用戶閱讀郵件時,POP命令所有的郵件信息立即下載到用戶的計算機上,不在服務器上保留。

    ?

    IMAP協議

    互聯網信息訪問協議(IMAP)是一種優于POP的新協議。和POP一樣,IMAP也能下載郵件、從服務器中刪除郵件或詢問是否有新郵件,但IMAP克服了POP的一些缺點。例如,它可以決定客戶機請求郵件服務器提交所收到郵件的方式,請求郵件服務器只下載所選中的郵件而不是全部郵件。客戶機可先閱讀郵件信息的標題和發送者的名字再決定是否下載這個郵件。通過用戶的客戶機電子郵件程序,IMAP可讓用戶在服務器上創建并管理郵件文件夾或郵箱、刪除郵件、查詢某封信的一部分或全部內容,完成所有這些工作時都不需要把郵件從服務器下載到用戶的個人計算機上。

    ?

    簡單來說,SMTP協議主要是用于發郵件,POP和IMAP協議用于讀取、刪除、下載郵件。結合QQ郵箱和網易郵箱,筆者認為,QQ郵箱更注重POP協議方面,網易郵箱比較注重SMTP協議方面,下面筆者將會對其原由進行闡述,希望對讀者有所幫助。

    在利用第三方對QQ郵箱和網易郵箱進行郵件操作之前,需要在各自的后臺開啟POP/SMTP服務,并且獲取到授權碼(網易郵箱若關閉客戶端授權碼,則可以直接用登錄密碼)。

    2.發送郵件

    發送郵件應該使用SMTP協議。有關SMTP協議的具體內容,這里筆者就不再闡述了。

    C#對發送郵件的庫封裝得已經比較好了,開發人員可以很方便的完成發送郵件的操作。在System.Net.Mail命名空間中封裝了對發送郵件的操作,下面是使用QQ郵箱發送的案例:

    MailMessage message = new MailMessage();//設置發件人,發件人需要與設置的郵件發送服務器的郵箱一致MailAddress fromAddr = new MailAddress("2965372061@qq.com");message.From = fromAddr;//設置收件人,可添加多個,添加方法與下面的一樣message.To.Add("2965372061@qq.com");//設置抄送人message.CC.Add("2965372061@qq.com");//設置郵件標題message.Subject = "通知";//設置郵件內容message.Body = "Hello world";//設置郵件發送服務器,服務器根據你使用的郵箱而不同,可以到相應的 郵箱管理后臺查看SmtpClient client = new SmtpClient("smtp.qq.com", 25);//設置發送人的郵箱賬號和授權碼client.Credentials = new NetworkCredential("2965372061@qq.com", "授權碼");//啟用ssl,也就是安全發送client.EnableSsl = true;//發送郵件 client.Send(message);Console.WriteLine("發送成功");Console.ReadLine();

    上面發送的是文本格式,接下來介紹如何發送HTML格式的文件。如何想要發送HTML格式的郵件,那么只需要指定IsBodyHtml為true即可。

    message.Body="<h1>Hello World</h1>"; message.IsBodyHtml=true;

    如果想要發送附件的話,那么應該往Message實例中的Attachments 屬性中添加一個Attachment(附件)實例。

    關于QQ郵件的發送就討論到這里,接下來討論一下網易郵件的發送。網易郵件的發送較為麻煩,這和網易郵箱的反垃圾郵件機制有關。網易為了希望用戶能夠得到純凈的電子郵件網絡環境,減少垃圾郵件,系統對會對發送的信件做判定,并限制對垃圾的郵件的發送。

    下面是網易發送郵件的代碼,筆者測試能夠成功發送郵件:

    MailMessage message = new MailMessage();//設置發件人,發件人需要與設置的郵件發送服務器的郵箱一致MailAddress fromAddr = new MailAddress("18011389221@163.com");message.From = fromAddr;message.To.Add("18011389221@163.com");//自己接收//設置郵件標題message.Subject = "通知";//設置郵件內容message.Body = "Hello world";//設置郵件發送服務器,服務器根據你使用的郵箱而不同,可以到相應的 郵箱管理后臺查看SmtpClient client = new SmtpClient("smtp.163.com", 25);//設置發送人的郵箱賬號和授權碼client.Credentials = new NetworkCredential("18011389221@163.com", "授權碼");//發送郵件 client.Send(message);Console.WriteLine("發送成功");Console.ReadLine();

    筆者只在自己給自己發郵件中測試成功過,在給別的郵箱中發郵件時總是被判定為垃圾郵件。如果讀者測試時并不能夠成功發送郵件,可按照如下幾部步驟檢查:
    1.檢查客戶端授權碼是否開啟,授權碼是否停用
    2.檢查是否開啟POP3/SMTP服務
    3.將發件人添加到白名單中
    4.取消智能收信分類
    5.不要設置抄送人

    從上面可以看出,在SMTP服務中網易郵箱比QQ郵箱的判斷要更加嚴格。

    3.讀取郵件

    讀取郵件要用到的協議為POP3協議。然而C#的類庫中,并沒有對POP3協議進行封裝。QQ郵箱在POP3協議的建立中,使用了SSL,這使得數據的傳輸更加的安全。然而網易郵箱并沒有使用SSL協議。

    如果是電腦客戶端通過CMD命令與POP服務器建立鏈接的話,網易郵箱的操作(telnet)沒什么難度。但是QQ郵箱的操作(openssl)就相對比較復雜了,在使用openssl命令與主機建立連接時,必需傳入證書。C#對SSL已經有過包裝,通過C#可以輕松的與QQ郵箱和網易郵箱POP協議主機建立連接。

    在開始之前,讀者可能需要先了解一些POP3協議的知識,關于POP3文檔讀者可以自行度娘。這里筆者列舉出,POP3協議中的命令碼:

    命令描述
    USER [username]用戶名
    PASS [password]密碼
    APOP [Name,Digest]認可Digest是MD5消息摘要
    STAT處理請求服務器發回關于郵箱的統計資料,如郵件總數和總字節數
    UIDL [Msg#]處理返回郵件的唯一標識符,POP3會話的每個標識符都將是唯一的
    LIST [Msg#]處理返回郵件數量和每個郵件的大小
    RETR [Msg#]處理返回由參數標識的郵件的全部文本
    DELE [Msg#]處理服務器將由參數標識的郵件標記為刪除,由quit命令執行
    RSET處理服務器將重置所有標記為刪除的郵件,用于撤消DELE命令
    TOP [Msg# n]處理服務器將返回由參數標識的郵件前n行內容,n必須是正整數
    NOOP處理服務器返回一個肯定的響應
    QUIT終止會話

    ?


    接下來筆者連接QQ郵箱POP服務主機,展示一些常見的命令使用:

    TcpClient clientSocket = new TcpClient();clientSocket.Connect("pop.qq.com", 995);//連接到QQ郵箱POP服務器//建立SSL連接SslStream stream = new SslStream(clientSocket.GetStream(),false,(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors errors) => {return true;//接收所有的遠程SSL鏈接 });stream.AuthenticateAsClient("pop.qq.com");//驗證//得到輸入流StreamReader reader = new StreamReader(stream, Encoding.Default, true);//得到輸出流StreamWriter writer = new StreamWriter(stream);Console.WriteLine(reader.ReadLine());//以+Ok開頭,表示連接成功 writer.WriteLine("USER 2965372061@qq.com");writer.Flush();Console.WriteLine(reader.ReadLine());//+Ok 表示用戶名正確 writer.WriteLine("PASS 授權碼");writer.Flush();Console.WriteLine(reader.ReadLine());//+Ok 表示密碼正確 writer.WriteLine("STAT");writer.Flush();Console.WriteLine(reader.ReadLine());//獲得郵件數 +OK 189 1058197 表示 189封郵件,1058197b writer.WriteLine("RETR 1");writer.Flush();String result = null;//獲得第1封郵件的內容,讀取的內容需要使用base64解碼while ((result = reader.ReadLine()) != null){Console.WriteLine(reader.ReadLine());}Console.ReadLine();

    讀者也可以測試連接網易郵箱POP服務器,
    1.網易郵箱POP服務器的遠程地址是:pop.163.com:995。
    2.無需建立SSL鏈接

    參考文檔:
    POP3協議
    SMTP協議

    總結

    以上是生活随笔為你收集整理的【C#】C#对电子邮件的收发操作的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 91丨九色丨海角社区 | 欧美亚洲在线播放 | 国产精品网站入口 | 色乱码一区二区三区在线男奴 | av天天干| 成在线人免费视频 | 久久av一区二区三区漫画 | 亚洲黄色精品 | 久久久久草| 天堂√8在线中文 | 亚洲在线观看免费视频 | 欧美乱淫视频 | 天天综合网天天综合 | 久久国产精品无码网站 | 国产精品久久麻豆 | av一区二区在线观看 | 看了让人下面流水的视频 | 播播网色播播 | 国产精品美女在线观看 | 岛国av在线播放 | 爽天天天天天天天 | 台湾佬av | 欧美成人高潮一二区在线看 | 巨乳xxx| 日韩一区不卡视频 | 伊人资源 | 欧洲久久久久 | 日日噜噜夜夜狠狠久久丁香五月 | 日本xxxx高清 | 日本国产在线 | 久久综合热 | 欧美gv在线观看 | 91香蕉在线看 | 欧美激情 国产精品 | 成人午夜免费福利 | 亚洲无码精品一区二区三区 | aa视频在线 | 人人叉人人| 久久婷婷综合色 | 精品乱码久久久久久中文字幕 | 另类专区成人 | 97视频免费在线 | 黄色变态网站 | 射射色| 欧美超碰在线观看 | av午夜在线观看 | 国模无码国产精品视频 | 99热中文| 国产午夜精品一区 | 色小说在线 | 国产免费一级视频 | 丁香一区二区三区 | 人人人超碰 | 春日野结衣av | 色综合网址 | 老司机狠狠爱 | 成人日皮视频 | 亚洲av永久中文无码精品综合 | 欧美视频一区二区三区在线观看 | 免费观看一区二区三区毛片 | 中文字幕一区二区三区门四区五区 | 亚洲成人91 | 欧美日韩一区二区精品 | 午夜草逼 | 极品美女被c | 亚洲调教欧美在线 | 亚洲色图美腿丝袜 | 亚洲精品理论 | 国产一线二线三线女 | 999在线视频 | 日韩精品免费在线 | 99re在线精品 | 91黄漫| 三上悠亚痴汉电车 | 国产视频久久 | 丰满的女人性猛交 | 日日操夜夜操狠狠操 | 日韩性xx | 天堂在线精品视频 | 在线观看av中文字幕 | 91久久一区| 麻豆视频免费在线观看 | 亚洲伦理视频 | 欧美调教视频 | 91看毛片| 日韩一级免费 | 操天天操 | 日本特黄成人 | 亚洲91在线 | 色操插 | 国产精品久久久久影院 | 日韩欧美一二三区 | 亚洲狠狠婷婷综合久久久久图片 | 人人妻人人藻人人爽欧美一区 | 激情文学亚洲色图 | 亚洲激情视频在线观看 | 亚洲av综合色区无码一区爱av | 久操视频免费观看 | 午夜电影福利网 |