.NET環(huán)境下幾種不同的郵件發(fā)送解決方案(2)_.Net教程
推薦:VB.NET實現(xiàn)窗體圖標(biāo)最小化到狀態(tài)欄本文所使用的編程環(huán)境是Microsoft Visual Studio 2005,首先打開 Visual Studio。在文件 (File) 菜單上,單擊新建項目 (New Project)。 在新建項目 (New Project) 對話框的模板 (Templates) 窗
7、客戶端用QUIT命令退出。
客戶端:QUIT
服務(wù)器端:250 server.com closing transmission channel
優(yōu)點:可以在此基礎(chǔ)上開發(fā)出自己的組件,利用Sockets我們可以進行網(wǎng)絡(luò)編程開發(fā)
缺點:程序量相對較多,
發(fā)送郵件的代碼如下:
| 以下為引用的內(nèi)容: Dim sendData As String Dim szData As Byte() Dim CRLF As String CRLF = "\r\n" '創(chuàng)建與服務(wù)器25端口的連接 Dim SmtpServ As New TcpClient(txtsmtp.Text, 25) lstlog.Items.Clear() '顯示服務(wù)器初始信息 Dim.NetStrm As.NetworkStream .NetStrm = SmtpServ.GetStream() Dim RdStrm As New StreamReader(SmtpServ.GetStream()) If RdStrm.ReadLine() 〈〉 "" Then lstlog.Items.Add(RdStrm.ReadLine()) ' sendData = "HELO server " CRLF szData = System.Text.Encoding.ASCII.GetBytes(sendData.ToCharArray()) .NetStrm.Write(szData, 0, szData.Length) lstlog.Items.Add(RdStrm.ReadLine()) '標(biāo)志發(fā)件人 sendData = "MAIL FROM: " "〈" txtfrom.Text "〉" CRLF szData = System.Text.Encoding.ASCII.GetBytes(sendData.ToCharArray()) .NetStrm.Write(szData, 0, szData.Length) lstlog.Items.Add(RdStrm.ReadLine()) '標(biāo)志收件人 sendData = "RCPT TO: " "〈" txtTo.Text "〉" CRLF szData = System.Text.Encoding.ASCII.GetBytes(sendData.ToCharArray()) .NetStrm.Write(szData, 0, szData.Length) lstlog.Items.Add(RdStrm.ReadLine()) '準(zhǔn)備發(fā)送內(nèi)容 sendData = "DATA " CRLF szData = System.Text.Encoding.ASCII.GetBytes(sendData.ToCharArray()) .NetStrm.Write(szData, 0, szData.Length) lstlog.Items.Add(RdStrm.ReadLine()) '發(fā)送主題 sendData = "SUBJECT: " txtsub.Text CRLF '發(fā)送內(nèi)容 sendData = sendData txtmsg.Text CRLF '結(jié)束發(fā)送 sendData = sendData "." CRLF szData = System.Text.Encoding.ASCII.GetBytes(sendData.ToCharArray()) .NetStrm.Write(szData, 0, szData.Length) lstlog.Items.Add(RdStrm.ReadLine()) '退出 sendData = "QUIT " CRLF szData = System.Text.Encoding.ASCII.GetBytes(sendData.ToCharArray()) .NetStrm.Write(szData, 0, szData.Length) lstlog.Items.Add(RdStrm.ReadLine()) '關(guān)閉連接 .NetStrm.Close() RdStrm.Close() lstlog.Items.Add("連接關(guān)閉") lstlog.Items.Add("發(fā)送成功") 大家還可以參考:使用C# 創(chuàng)建郵件發(fā)送組件(SMTP) |
4、IIS SMTP自帶的基本的發(fā)信組件CDONTS
你不必專門下載,微軟已經(jīng)提供了這個組件,只要安裝了2000,NT的SMTP就會有的。
優(yōu)點:組件由操作系統(tǒng)自帶
缺點:功能比較差,可擴展性不強
Mymail = CreateObject("CDONTS.NewMail")
Mymail.From = *** '信件發(fā)送者信箱
Mymail.To = *** ‘信件接收者信箱
Mymail.CC = *** '抄送
Mymail.BCC = *** ’密件發(fā)送
Mymail.Subject = *** ‘信件主題
Mymail.Body = *** ’信件正文
'設(shè)置優(yōu)先級,0-不重要,1-一般,2-重要。
Mymail.Importance = 2
Mymail.Send()
Mymail = Nothing
5、使用JMail組件
Jmail具有以下特點:
(1)可以發(fā)送附件;
(2)詳細日志能力,便于你查看問題所在;
(3)設(shè)置郵件發(fā)送的優(yōu)先級;
(4)支持多種格式的郵件發(fā)送,比如說以HTML或者TXT的方式發(fā)送郵件。這是個免費的組件。
(5)密件發(fā)送/(CC)抄送/緊急信件發(fā)送能力;
(6)最關(guān)鍵的就是--免費的組件,不必發(fā)錢,所以非常值得使用。
網(wǎng)站:http://www.dimac.Net/,目前版本是4.3
JMail組件的常用屬性:
Body 郵件正文
Logging 調(diào)用Log記錄,供Debug用
Priority 郵件的優(yōu)先程度,從1到5
Sender 發(fā)件人
ServerAddress SMTP服務(wù)器的IP地址或名稱
Subject 郵件標(biāo)題
JMail組件的常用方法:
AddAttachment 指定附件文件
AddRecipient 加入一個收件人
AddRecipientBCC 隱藏的副本抄送,只有發(fā)件人和BCC收件人知道。
AddRecipientCC 副本抄送
Execute 送出郵件
了解必要的屬性及方法后,余下的部分接收使用者輸入的Email,當(dāng)成參數(shù)傳給AddRecipient方法,然后根據(jù)需要填上其余屬性,最后以Execute方法寄出。例如:
| 以下為引用的內(nèi)容: Dim JMail JMail = Server.CreateObject("JMail.SMTPMail") JMail.Logging = True JMail.ServerAddress = "202.96.144.48" JMail.Sender = "[email protected]" JMail.Subject = "subject." JMail.Body = "body." JMail.AddRecipient("[email protected]") JMail.AddAttachment("c:\go.gif") JMail.Priority = 3 JMail.Execute() JMail = Nothing |
總結(jié):選擇何種方案,視程序的用途和需求而定,本文例出的幾種方案,供大家參考。例如用友軟件U8,調(diào)用outlook組件,一樣整合到自己的軟件中。我編寫的管理系統(tǒng),自己寫組件(SMTP),功能同樣強大,不過Coding的時間就長了!
分享:AJAX使用技巧:如何處理書簽和翻頁按扭本篇文章提供了一個開源JavaScript庫,它提供了給AJAX應(yīng)用程序中添加書簽和會退按鈕的功能。在學(xué)習(xí)完這個教程后,開發(fā)者將能夠?qū)﹂_發(fā)AJAX應(yīng)用碰到的問題獲得一個解決方案,這個特性甚至Google M
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實例(可帶附件)
- js實現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實現(xiàn)
- Asp.Net 無刷新文件上傳并顯示進度條的實現(xiàn)方法及思路
- Asp.net獲取客戶端IP常見代碼存在的偽造IP問題探討
- VS2010 水晶報表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(連接字符串的配置及獲取)
- asp.net頁面?zhèn)髦禍y試實例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲過程實現(xiàn)分頁示例代碼
- 相關(guān)鏈接:
- 教程說明:
.Net教程-.NET環(huán)境下幾種不同的郵件發(fā)送解決方案(2)
。