.NET環境下Email的技術介紹
出處:部落格園 作者:surprise 時間:2005-7-2 1:43:00
一、NET環境下幾種不同的郵件傳送解決方案
1、 WEB開發,在ASP.NET中引用System.Web.Mail類
郵件訊息是通過內建在 Microsoft Windows 2000 中的 SMTP 郵件服務或任意的 SMTP 伺服器來傳送的。System.Web.Mail 名稱空間中生成的SmtpMail類可用於在C#網路程式中傳送SMTP郵件。此名稱空間中的類可以在 ASP.NET 或任何託管應用程式。在System.Web.Mail中提供用於構造電子郵件附件的屬性和方法的類MailAttachment和用於構造電子郵件的屬性和方法的類MailMessage。
⑴ SmtpMail類
屬性:
SmtpServer 獲取或設定要用於傳送所有電子郵件的 SMTP 郵件伺服器的名稱。
方法:
Send() 傳送電子郵件。
⑵ MailMessage類
屬性:
Attachment 指定隨訊息一起傳輸的附件列表。
Bcc 獲取或設定以分號分隔的電子郵件地址列表,這些地址接收電子郵件的匿名副本 (BCC)。
Body 獲取或設定電子郵件的正文。
BodyEncoding 獲取或設定電子郵件正文的編碼型別。
BodyFormat 獲取或設定電子郵件正文的內容型別。
Cc 獲取或設定以分號分隔的電子郵件地址列表,這些地址接收電子郵件的抄送副本 (CC)。
From 獲取或設定發件人的電子郵件地址。
Headers 指定隨電子郵件一起傳輸的自定義標頭。
Priority 獲取或設定電子郵件的優先順序。
Subject 獲取或設定電子郵件的主題行。
To 獲取或設定收件人的電子郵件地址。
UrlContentBase 獲取或設定 Content-Base HTTP 標頭,即在 HTML 編碼的電子郵件正文中使用的所有相對URL 的 URL 基。
UrlContentLocation獲取或設定電子郵件的 Content-Location HTTP 標頭。
⑶ MailAttachment類
建構函式:
public MailAttachment( string filename);
filename:附件檔案的名稱。
程式碼如下:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Web.Mail;
namespace WebMail
{
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button Button1;
private System.Web.Mail.MailMessage m_Mail;
private void Page_Load(object sender, System.EventArgs e)
{
m_Mail=new MailMessage();
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
InitializeComponent();
base.OnInit(e);
}
private void InitializeComponent()
{
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void Button1_Click(object sender, System.EventArgs e)
{
'定義SMTP伺服器的名稱
m_Mail.SmtpServer = "smtp.163.com";
'定義郵件的傳送地址
m_Mail.From=" lihonggen@163.com ";;
'定義郵件的接收地址
m_Mail.To = " lihonggen0@163.com";
'定義郵件的暗送地址
'm_Mail.Bcc "aa@sina.com"
'定義郵件的抄送地址
'm_Mail.Cc = "aaa@sina.com"
'定義郵件的主題
m_Mail.Subject = "主題";
'定義郵件的主體
m_Mail.Body = "郵件主體!";
'郵件以 HTML的格式傳送
m_Mail.BodyFormat = MailFormat.Html;
'定義郵件的有限級,在此設定為高
m_Mail.Priority = MailPriority.High;
'給傳送的郵件附加上一個附件
m_Mail.Attachments.Add(New MailAttachment("c:/lihonggen.doc"));
SmtpMail.Send(m_Mail);
}
}
}
2、 在開發Windows 應用程式中使用System.Net.Sockets
也是基於SMTP協議
一、SMTP協議簡介
⑴ 客戶端通過伺服器的25埠建立TCP/IP連線
伺服器端: 220 server.com Simple Mail Transfer Service Ready
⑵ 客戶端使用“HELO”命令標識發件人
客戶端:HELO server.com
伺服器端:250 server.com
⑶ 客戶端傳送MAIL命令,伺服器端以OK作為響應表明準備接收
伺服器端: 250 OK
⑷ 客戶端傳送RCPT命令標識收件人,伺服器端回應是否願意為收件人接受郵件
客戶端:RCPT TO: <d></d>
伺服器端:250 OK
⑸ 協商結束後用命令DATA傳送傳送郵件
客戶端:DATA
伺服器端:354 Start mail input: end with <crlf>.<crlf></crlf></crlf>
⑹ 客戶端以.表示結束輸入內容一起傳送出去
客戶端:Subject: <crlf></crlf>
內容<crlf></crlf>
.<crlf></crlf>
⑺ 客戶端用QUIT命令退出。
客戶端:QUIT
伺服器端:250 server.com closing transmission channel
優點:可以在此基礎上開發出自己的元件,利用Sockets我們可以進行網路程式設計開發
缺點:程式量相對較多,
因程式碼過長所以在此不顯示了
3、 IIS SMTP自帶的基本的發信元件CDONTS
你不必專門下載,微軟已經提供了這個元件,只要安裝了2000,NT的SMTP就會有的。
優點:元件由作業系統自帶
缺點:功能比較差,可擴充套件性不強
Mymail = CreateObject("CDONTS.NewMail")
Mymail.From = *** '信件傳送者信箱
Mymail.To = *** ‘信件接收者信箱
Mymail.CC = *** '抄送
Mymail.BCC = *** ’密件傳送
Mymail.Subject = *** ‘信件主題
Mymail.Body = *** ’信件正文
'設定優先順序,0-不重要,1-一般,2-重要。
Mymail.Importance = 2
Mymail.Send()
Mymail = Nothing
4、使用JMail元件
Jmail具有以下特點:
(1)可以傳送附件;
(2)詳細日誌能力,便於你檢視問題所在;
(3)設定郵件傳送的優先順序;
(4)支援多種格式的郵件傳送,比如說以HTML或者TXT的方式傳送郵件。這是個免費的元件。
(5)密件傳送/(CC)抄送/緊急信件傳送能力;
(6)最關鍵的就是--免費的元件,不必發錢,所以非常值得使用。
JMail元件的常用屬性:
Body 郵件正文
Logging 呼叫Log記錄,供Debug用
Priority 郵件的優先程度,從1到5
Sender 發件人
ServerAddress SMTP伺服器的IP地址或名稱
Subject 郵件標題
JMail元件的常用方法:
AddAttachment 指定附件檔案
AddRecipient 加入一個收件人
AddRecipientBCC 隱藏的副本抄送,只有發件人和BCC收件人知道。
AddRecipientCC 副本抄送
Execute 送出郵件
瞭解必要的屬性及方法後,餘下的部分接收使用者輸入的Email,當成引數傳給AddRecipient方法,然後根據需要填上其餘屬性,最後以Execute方法寄出。例如:
JMail = Server.CreateObject("JMail.SMTPMail")
JMail.Logging = True
JMail.ServerAddress = "202.96.144.48"
JMail.Sender = "lihonggen0@163.com"
JMail.Subject = "subject."
JMail.Body = "body."
JMail.AddRecipient("bbbb@163.com")
JMail.AddAttachment("c:/go.gif")
JMail.Priority = 3
JMail.Execute()
JMail = Nothing
二、NET環境下郵件接收解決方案
POP3協議是一個客戶讀取或接收儲存在遠端郵件伺服器上的郵件最常用的基本協議,一旦客戶機與伺服器建立一個連線,就傳送簡單文字命令,並且伺服器以恰當的資訊來響應。必須知道使用的命令是什麼,以什麼樣的順序發出,才能正確地從伺服器上收取信件。
注意點:在登陸伺服器時埠號應該是110
POP3的執行命令
首先手工輸入
telnet pop.163.com
1.許可權檢查命令
執行命令
描述
USER
使用者名稱
PASS
密碼
2.獲取資訊命令
執行命令
描述
STAT
響應包含郵件的數量和全部郵件大小
LIST
收到一份個人郵件列表,列出每封郵件的大小
3.檢索郵件
執行命令
描述
TOP
它能取得郵件的報頭並且從信件中挑出文字行的數目
RETR
返回郵件的全部位元組數目和整個郵件的文字
QUIT
終止會話,關閉郵箱
由於把每個功能都寫下來收件程式碼就會過長,因此只寫了USER、PASS、STAT執行命令http://www.cnblogs.com/surprise/archive/2004/09/24/46243.aspx#FeedBack,其它執行命令的程式碼請參考有關文件。
相關文章
- 環境搭建及介紹
- Python虛擬環境介紹Python
- Appium 介紹與環境搭建APP
- Android環境下hanlp漢字轉拼音功能的使用介紹AndroidHanLP
- Kotlin on Android 開發環境介紹KotlinAndroid開發環境
- Appium 介紹及環境安裝APP
- DKHadoop安裝的環境準備介紹Hadoop
- linux或者CentOS環境下安裝.NET Core環境LinuxCentOS
- linux環境下安裝mysql8.0過程介紹GMFXLinuxMySql
- [Windows環境]nvm工具的介紹和安裝Windows
- Flask框架(一):介紹與環境搭建Flask框架
- java介紹、環境搭建與Hello,World!Java
- vcenter6.7生產環境叢集部署之環境介紹
- AIGC底層技術介紹AIGC
- 容器技術和Docker介紹Docker
- 簡單介紹python虛擬環境 virtualenv的使用Python
- WiFi協議的調製技術介紹WiFi協議
- 液晶顯示技術TCON介紹
- Docker容器技術與Docker介紹Docker
- WebRTC環境搭建| 掘金技術徵文Web
- IDE-整合開發環境軟體介紹IDE開發環境
- 簡單介紹Linux環境變數檔案Linux變數
- SAP Commerce Cloud 構建環境型別介紹Cloud型別
- 大資料環境下計算機軟體技術分析大資料計算機
- .NET框架介紹框架
- 負載均衡技術(一)———負載均衡技術介紹負載
- Web前端技術的發展,介紹MV*模式Web前端模式
- SAP BTP 平臺 CloudFoundry 環境入門級別的介紹Cloud
- Windows環境下的Nginx環境搭建WindowsNginx
- 技術分享 | Linux 環境下針對程式維度的監控實現Linux
- MySQL入門--複製技術介紹MySql
- 人工智慧文生圖技術介紹人工智慧
- 技術分享 | MySQL InnoDB Cluster Set 介紹MySql
- ORACLE 12C RAC 生產環境搭建介紹Oracle
- Elasticsearch核心技術(一):Elasticsearch環境搭建Elasticsearch
- U-net的環境配置
- Linux(CentOS)下.NET,mono環境的安裝步驟整理LinuxCentOSMono
- 通俗易懂的生產環境Web應用架構介紹Web應用架構
- SAP ABAP CDS view 檢視的 Replacement 技術介紹View