.NET開發郵件傳送功能的全面教程(含郵件元件原始碼)
今天,給大家分享的是如何在.NET平臺中開發“郵件傳送”功能。在網上搜的到的各種資料一般都介紹的比較簡單,那今天我想比較細的整理介紹下:
1)郵件基礎理論知識
2)郵件傳送相關.NET類庫
3)介紹我開發的一個傳送郵件的小元件(MailHelper)
4)MailHelper元件的一個示例以及幾種方式發郵件的優劣測試
示例及元件原始碼:(有幾位園友反饋IE瀏覽器解析不出下載地址)
郵件基礎理論知識
什麼業務需要郵件功能?
1.服務提供方:需提供郵件收發客戶端或Web服務。(eg:Outlook、QQ郵箱)。當然這些服務都是知名商提供。若是一般的小網站提供的郵件收發服務,不知道節操如何,誰敢用呢?就算你用了,別的知名商
2.安全性、機密性:比如某安全部門需要提供自己發郵件的SMTP伺服器和收郵件POP3伺服器以及相應的操作軟體
3.電子商務、論壇等會員機制社群:主家需要向會員傳送通知資訊,比如:密碼重置、降價通知、留言通知、回覆通知、訂閱通知、會員間交流等等。主家保證郵箱有效性的辦法常常是通過會員註冊、更換郵箱時傳送“啟用郵件”。
4.郵件營銷:在大資料時代的現在,企業可以根據所掌握的資料預測客戶的需求,來提供主動推送營銷訊息的功能(資料化運營);當然也有沒有預測能力的小商家通過郵件群發器進行撒網式郵件營銷。(郵件營銷是:在恰當的時間傳遞合適的資訊給需要的客戶,目的是產生銷售) ---- 比如
5.等等
當前常用的電子郵件協議有SMTP、POP3、IMAP4,它們都隸屬於TCP/IP協議簇。
1.SMTP
Simple Mail Transfer Protocol(即簡單郵件傳輸協議),它是一組用於從源地址到目的地址傳送郵件的規則,簡單的說就是:From-->To的傳送規則。由SMTP來控制信件中轉的方式。SMTP屬於TCP/IP家族中的一員,它幫助每一臺計算機在傳送或中轉信件時找到下一個目的地。通過SMTP協議所指定的伺服器,就可以把E-Mail寄到收信人的伺服器上。SMTP伺服器則是遵循SMTP協議的郵件傳送伺服器,用來中轉你發出的電子郵件。
SMTP目前已是事實上的E-Mail傳輸的標準。
2.POP3
Post Office Protocol 3(即郵局協議的第3個版本),負責從郵件伺服器中檢索電子郵件。它要求郵件伺服器完成下面幾種任務之一:從郵件伺服器中檢索郵件並從伺服器中刪除這個郵件;從郵件伺服器中檢索郵件但不刪除它;不檢索郵件,只是詢問是否有新郵件到達。
POP3是因特網電子郵件的第一個離線協議標準。
3.IMAP4
Internet Message Access Protocol 4(即互動式資料訊息訪問協議第四個版本),提供離線和聯機訪問功能。是一種優於POP的新協議,是美國斯坦福大學在1986年開始研發的多重郵箱電子郵件系統。和POP一樣,IMAP也能下載郵件、從伺服器中刪除郵件或詢問是否有新郵件,但IMAP克服了POP的一些缺點。例如,請求郵件伺服器只下載所選中的郵件而不是全部郵件。客戶機可先閱讀郵件資訊的標題和傳送者的名字再決定是否下載這個郵件。通過使用者的客戶機電子郵件程式,IMAP可讓使用者在伺服器上建立並管理郵件資料夾或郵箱、刪除郵件、查詢某封信的一部分或全部內容,完成所有這些工作時都不需要把郵件從伺服器下載到使用者的個人計算機上。
預設情況下,當 IMAP4 電子郵件應用程式將電子郵件下載到客戶端計算機,下載郵件的副本會保留在電子郵件伺服器上。正是由於使用者的電子郵件副本保留在電子郵件伺服器上,使用者可以從多臺計算機上訪問相同的電子郵件。也可以實現電子郵件伺服器上的多個資料夾與客戶端計算機上的多個資料夾同步。
SMTP/POP3工作方式如圖:
TCP的3次握手和4次揮手?
在 TCP 資料段報頭中,有六個包含控制資訊的 1 bit欄位,用於管理 TCP 程序。這些欄位分別是:
URG —緊急指標
ACK —確認欄位
PSH —推送功能
RST —重置連線
SYN —同步序列號
FIN —傳送方已傳輸完所有資料
這些欄位用作標誌,由於它們都只有 1 bit大小,所以它們都只有兩個值:1 或者 0。當值設為 1 時,表示資料段中包含控制資訊。
1.三次握手,建立連線
在TCP/IP協議中,TCP協議提供可靠的連線服務,採用三次握手建立一個連線。
1)建立連線時,客戶端A傳送SYN包(SYN=j)到伺服器B,並進入SYN_SEND狀態,等待伺服器B確認。
2)伺服器B收到SYN包,必須確認客戶A的SYN(ACK=j+1),同時自己也傳送一個SYN包(SYN=k),即SYN+ACK包,此時伺服器B進入SYN_RECV狀態。
3)客戶端A收到伺服器B的SYN+ACK包,向伺服器B傳送確認包ACK(ACK=k+1),此包傳送完畢,客戶端A和伺服器B進入ESTABLISHED狀態,完成三次握手。
2.四次揮手,關閉連線
相關推薦
.NET開發郵件傳送功能的全面教程(含郵件元件原始碼)
今天,給大家分享的是如何在.NET平臺中開發“郵件傳送”功能。在網上搜的到的各種資料一般都介紹的比較簡單,那今天我想比較細的整理介紹下: 1)郵件基礎理論知識 2)郵件傳送相關.NET類庫 3)介紹我開發的一個傳送郵件的小元件(MailHelper) 4)MailHelper元件的一個示例以及幾種
JavaMail java郵件開發_在Web應用中增加郵件傳送功能
建立一個web專案 在lib下新增兩個jar包,mail.jar和之前寫的JavaMail02.jar SendMailServlet: package com.yuming.servlet; import java.io.IOException; import javax.se
System.Net郵件傳送功能踩過的坑
# System.Net郵件傳送功能踩過的坑 [toc] # 1.EazyEmail郵件傳送類庫 Net 類庫自帶了郵件傳送功能。筆者對該類庫,從使用的角度進行了二次封裝,nuget上可搜尋EazyEmail,注入容器時通過委託來獲得郵箱伺服器的配置地址以及傳送地址直接呼叫send方法即可。 容器注入程式碼
易語云模組-易語言郵件傳送模組下載(含命令詳解)
易語言支援庫自帶郵件傳送命令,但是和現在的主流郵箱好像不能連線上,收件發件就更別提了。 於是易語云模組就橫空出世了,如果您要開發e程式傳送郵件的話,那麼使用易語云模組就可以很輕鬆的搞定了。 點選此處進入官網下載模組 下面我們進入正題 1.關於易語云模組的命令 我們開啟易語言
JAVA在不基於XML配置檔案的情況下實現郵件傳送功能(郵箱轟炸)
今天要講的是如何用Java程式碼實現簡單郵件傳送和複雜郵件傳送的功能,這裡我使用的是QQ郵箱,你們也可以嘗試使用其他的郵箱哦~ 想實現郵件傳送功能首先郵箱賬號必須要開啟 SMTP 服務,在網頁登入郵箱後點擊設定→賬戶然後下拉,如圖 &nb
利用EasySQLMAIL實現自動資料提取和郵件傳送功能 (1)
轉自:http://blog.sina.com.cn/s/blog_1549483b70102wioy.html 最近幾個月每天都在發通報。過程很繁瑣,動作很機械,整個人就是一部機器,執行SQL,填Excel,發郵件。所以想把日報自動化了。最後找到一個叫EasySQLMAIL的軟體,試了一下,很簡單也很方便
使用java實現郵件傳送功能(已封裝)
現如今,用郵件傳送訊息的人越來越少,可是並不影響我們學習java。 以下給大家帶來自己寫的封裝類,可以直接使用。 首先,需要jar包: 普通javaweb專案:mail.jar maven管理專案: <dependency> &
McAfee阻止郵件傳送功能
自己寫的郵件傳送功能,在本地機器上可以傳送,但是放到伺服器上面之後就不能傳送了,捕獲到的異常是“以一個訪問許可權不允許的方式做了一個訪問套接字的嘗試”,找了很久,終於發現是被McAfee給阻止了,下面是解決辦法: 1、滑鼠右鍵單擊螢幕右下角McAfee圖示 2、單擊“VirusScan控制檯“ 3、在彈
SpringBoot快速實現郵件傳送功能-百測百靈
2018年11月10日星期六 隨筆 筆記 springboot整合郵件傳送 一、匯入依賴包 org.springframework.boot spring-boot-starter-mail 二、開啟服務(一個即可) 三、傳送簡訊:配置郵件客戶端到1069
微信小程式開發入門教程 含視訊 有原始碼
做任何程式開發要首先找到其官方文件,我們先來看看其有哪些官方文件。 微信小程式開發文件連結為:https://mp.weixin.qq.com/debug/wxadoc/dev/index.html,如下圖: 這裡就是做微信小程式開發的全部官方文件。 知道了文件的位置,下面我們來介紹下如何做一個微
JavaMail實現郵件傳送功能
最近的專案要使用javamail進行郵件傳送,寫這篇部落格總結下 傳送簡單的郵件 在進行郵件傳送之前要引入javamail的Maven依賴 dependency> <groupId>javamail</groupId> &l
十:搭建Jenkins+Jmeter+Ant自動化整合環境(4)---新增郵件傳送功能
1、在系統設定中找到Jenkins Locaction項填入Jenkins URL和系統管理員郵件地址,系統管理員郵件地址一定要配置,否則發不了郵件通知。因為郵件通知都是由系統管理員的郵箱發出來的2、按照上圖配置的同時,要去自己的開啟SMTP服務,並生成授權碼3、1-2步完成
結合ABP原始碼實現郵件傳送功能
1. 前言 最近pm臨時提出了多種郵件驗證操作的需求,因為一時間也沒有找到好的郵件收發元件,也抱著研究ABP的心態,就花了幾小時時間探究了一下ABP中關於Email的處理和操作。其實郵件操作大多大同小異,這次只是希望介紹一下ABP中實現功能的程式碼結構而已,以下是具體過程 演示的ABP程式碼版本為
VC MFC 郵件傳送功能的實現
http://www.naughter.com/smtp.html CPJNSMTP目前是寫的比較完善的MFC程式,目前它原始碼最新是支援VS2015。 這個庫支援多國語言,傳送郵件不會出現亂碼。 並且支援SSL驗證,筆者已在QQ和163郵箱測通過,注意QQ郵箱設定第三方收
實現簡單的郵件傳送功能
1 建立路由 Route::get('/',function()){ //查詢Id為1的使用者 $user=\App\User::find(1); //to方法後面接的是郵件地址;send()方法接受的是預設實體類,該類可以通過p
java 建立郵件傳送功能
<!-- 郵件服務的jar包 --><dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version&g
linux 配置郵件傳送功能
1.mutt+msmtp的安裝 預設情況下smokeping傳送郵件使用sendmail,但是sendmail配置起來真心不是一般的麻煩,而且也沒有必要,完全大材小用了,所以我就想用mutt+msmtp的方案來發送告警郵件。 首先安裝mutt和msmtp這兩個
Python 實現郵件傳送功能(初級)
在我們日常專案中,會經常使用到郵件的傳送功能,如何利用Python傳送郵件也是一項必備的技能。本文主要講述利用Python來發送郵件的一些基本操作。 本章主要包含知識點: 郵件傳送原理簡述即常用smtp郵箱伺服器 傳送文字郵件 傳送html郵件 我們一般傳送郵件時,用到的代理有outlook,
Python 實現郵件傳送功能(進階)
上篇文章已經介紹了利用Python傳送文字訊息的用法,也在文末遺留了如何傳送圖片和附件的問題,本章主要來回答這兩個問題。 本章主要包含知識點: 1. 如何將圖片放到郵件主體中傳送 2. 如何傳送附件 問題一: 如何將圖片放在郵件主體中傳送 從上篇中應該都已知道,其實發送郵件,就是傳送Html格式
spring-boot-route(二十二)實現郵件傳送功能
在專案開發中,除了需要簡訊驗證外,有時候為了節省 簡訊費也會使用郵件傳送。在Spring專案中傳送郵件需要封裝複雜的訊息體,不太方便。而在Spring Boot專案中傳送郵件就太簡單了,下面一起來看看Spring Boot如何傳送郵件。 本文以126郵箱為例進行郵件傳送功能,其他郵箱的配置也都大同小異。