重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
貼上來是其中一個貼子,其他的內容在參考資料的網址里
在香坊等地區,都構建了全面的區域性戰略布局,加強發展的系統性、市場前瞻性、產品創新能力,以專注、極致的服務理念,為客戶提供成都網站建設、網站制作 網站設計制作專業公司,公司網站建設,企業網站建設,成都品牌網站建設,全網營銷推廣,外貿網站建設,香坊網站建設費用合理。
Visual Basic 6中發送郵件的新方法
用VB6編寫發送郵件的程序,有多種E-mail組件可供選擇,如MAPIMessages、IIS4.0附帶的CDONTS(NTS Collaboration Data Objects)以及許多第三方廠商開發的Email軟件等。本文介紹用CDONTS開發VB下的郵件程序方法。
1. 確認已安裝SMTP服務器
首先,必須確認在IIS服務器上已安裝SMTP服務器,這是安裝Option Pack時被缺省安裝的選項。如果SMTP服務器已安裝,在System32目錄下會存在一個名為cdonts.dll的文件。
2. 最簡單的郵件發送程序
以下是一個最簡單的郵件發送程序,它由me@hotmail點虐 向abc@263點虐 發出一封標題為“Title”、內容為“Hello”的E-mail:
Private Sub cmdSendMail_Click()
Dim objMail as Object
Set objMail=CreateObject("CDFONTS.DLL")
ObjMail.Send "me@hotmail點虐 ", "abc@263點虐 ","Title","Hello"
Set objMail=nothing
End Sub
3. 發送郵件附件
如果有附加的文件需要隨同郵件傳送,可以使用CDONTS的AttachFile方法:
Private Sub cmdSendMail_Click()
Dim objMail as Object
Set objMail=CreateObject("CDFONTS.DLL")
With ObjMail
.From= "me@hotmail點虐 "
.To= "abc@263點虐 "
.Subject="Title"
.Body="Hello"
.AttachFile "c:\document\ sample.doc","sample.doc"
.Send
End With
Set objMail=nothing
End Sub
4. CDONTS組件常用屬性和方法
CDONTS組件常用的屬性和方法列舉如下:
屬性:
Version:返回CDONTS組件的版本號
MailFormat:郵件格式,1-普通文本類型;0-MIME類型
Cc:設置一個或多個參閱的郵件地址
From:郵件發送者的地址
To :郵件接受者的地址
Subject:標題
Body:內容
BodyFormat:內容格式,1-普通文本;0-超文本
方法:
AttachFile:附加一個文件
AttachURL:附加一個地址
Send:發送郵件
5. 發送超文本格式的E-mail
你一定見到過許多使用超文本格式的E-mail,其中不但可以有圖片、聲音,甚至還可以嵌入動畫。如果給你的朋友也發送一封這樣的郵件,一定會帶給他(她)意外的驚喜,因為這用一般的郵件發送程序是無能為力的。以下使用CDONTS組件發送一個HTML格式的郵件,其中包含有一幅名為sample.gif的圖片,程序如下:
Private Sub cmdSendMail_Click()
Dim objMail as Object
Set objMail=CreateObject("CDFONTS.DLL")
Dim strHTML as String
StrHTML=""
StrHTML= StrHTML+""
StrHTML = StrHTML +"
用CDONTS發送Email的例子"
StrHTML= StrHTML+"
"
StrHTML= StrHTML+"
以上例子嵌入了圖片sample.gif
"
StrHTML= StrHTML+""
With ObjMail
.From= "me@hotmail點虐 "
.To= "abc@263點虐 "
.Subject="Title"
.Body=strHTML
.AttachURL "c:\mydata\sample.gif","sample.gif"
.BodyFormat=0
.EmailFormat=0
.Send
End With
Set objMail=nothing
End Sub
到這里,相信大家一定發現SMTP郵件處理的一個缺陷了。SMTP服務器接收你的輸出消息,但并不做發送者名字和地址的驗證,這本是由SMTP的異步發送機制所決定的,但有人可能別有用心地用它來假扮別人發送郵件!本文強烈建議各位切勿輕易試用,一旦讓ISP知道你的行徑,你的帳號極可能會被立即刪除。
1、使用outLook提供的發送
如:我見過的通過調用outLook的ActiveX組件
優點:開發簡單
缺點:依賴outlook組件,SMTP 郵件服務
2、WEB開發,在ASP.NET中引用System.Web.Mail類
System.Web.Mail 命名空間包含使您可以使用 CDOSYS(Windows 2000 的協作數據對象)消息組件來構造和發送消息的類。郵件消息是通過內置在 Microsoft Windows 2000 中的 SMTP 郵件服務或任意的 SMTP 服務器來傳送的。此命名空間中的類可以在 ASP.NET 或任何托管應用程序
MailAttachment提供用于構造電子郵件附件的屬性和方法。
MailMessage提供用于構造電子郵件的屬性和方法。
SmtpMail提供用于使用 Windows 2000 的協作數據對象 (CDOSYS) 消息組件來發送消息的屬性和方法。
郵件可以通過 Microsoft Windows 2000 中內置的 SMTP 郵件服務或任意 SMTP 服務器來傳送。System.Web.Mail 命名空間中的類型可以在 ASP.NET 或任何托管應用程序使用。
Smtp服務器的設置,現在一些免費郵件提供商是不再提供針對所有郵件提供Smtp服務,在發送郵件的時候,需要驗證用戶信息,考慮Smtp用戶驗證問題
如果Smtp服務器在本地計算機,發送速度很快的,基本上不用擔心,如果不是本地服務器,那么發送的時候最好不要以此太多,一是速度問題,二是以此發送太多郵件,Smtp服務器可能認為是垃圾郵件而拒絕服務
3、在VB.NET或C#開發Windows 應用程序中使用System.Net.Sockets
也是基于SMTP協議
一、SMTP協議簡介
1、 客戶端通過服務器的25端口建立TCP/IP連接
服務器端: 220 server點抗 Simple Mail Transfer Service Ready
2、 客戶端使用“HELO”命令標識發件人
客戶端:HELO server點抗
服務器端:250 server點抗
3、 客戶端發送MAIL命令,服務器端以OK作為響應表明準備接收
客戶端: MAIL FROM: A@B點抗
服務器端: 250 OK
4、 客戶端發送RCPT命令標識收件人,服務器端回應是否愿意為收件人接受郵件
客戶端:RCPT TO: c@d點抗
服務器端:250 OK
5、 協商結束后用命令DATA發送發送郵件
客戶端:DATA
服務器端:354 Start mail input: end with CRLF.CRLF
6、 客戶端以.表示結束輸入內容一起發送出去
客戶端:Subject: CRLF
內容CRLF
.CRLF
7、客戶端用QUIT命令退出。
客戶端:QUIT
服務器端:250 server點抗 closing transmission channel
優點:可以在此基礎上開發出自己的組件,利用Sockets我們可以進行網絡編程開發
缺點:程序量相對較多,
4、IIS SMTP自帶的基本的發信組件CDONTS
你不必專門下載,微軟已經提供了這個組件,只要安裝了2000,NT的SMTP就會有的。
優點:組件由操作系統自帶
缺點:功能比較差,可擴展性不強
5、使用JMail組件
Jmail具有以下特點:
(1)可以發送附件;
(2)詳細日志能力,便于你查看問題所在;
(3)設置郵件發送的優先級;
(4)支持多種格式的郵件發送,比如說以HTML或者TXT的方式發送郵件。這是個免費的組件。
(5)密件發送/(CC)抄送/緊急信件發送能力;
(6)最關鍵的就是--免費的組件,不必發錢,所以非常值得使用。
Private Sub Command1_Click()
Dim cm As New CDO.Message 'CDO.message是一個發送郵件的對象
'Set cm = CreateObject("CDO.Message") '創建對象 '引用路徑:C:\Windows\system32\cdosys.dll'這個是要引用的,如果不引用,可以用這句也行
cm.From = "30687724@qq點抗 " '設置發信人的郵箱"
cm.To = "suxg@eshinetech點抗 " '設置收信人的郵箱
cm.Subject = "主題:郵件發送試驗" '設定郵件的主題
'cm.TextBody = '郵件正文,使用文本格式發送郵件,如果太復雜了就不行了,要用下面這種
cm.HtmlBody = "郵件發送試驗^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" '使用html格式發送郵件
cm.AddAttachment "D:\1.txt" '發的附件名與地址
stUl = "" '微軟服務器網址,固定的,不用改的
With cm.Configuration.Fields
.Item(stUl "smtpserver") = "smtp.qq點抗 " 'SMTP服務器地址
.Item(stUl "smtpserverport") = 25 'SMTP服務器端口
.Item(stUl "sendusing") = 2 '發送端口
.Item(stUl "smtpauthenticate") = 1 '需要提供用戶名和密碼,0是不提供 '
.Item(stUl "sendusername") = "30687724" '發送方郵箱名稱,不用輸入@后面的東西
.Item(stUl "sendpassword") = "suxi87724" '發送方郵箱密碼
.Update
End With
cm.Send '最后當然是執行發送了
Set cm = Nothing
'發送成功后即時釋放對象
End Sub
在Identity2.0里面封裝了IIdentityMessageService接口,可以用來發送接收郵件。
看看
Imports System.Threading.Tasks
Imports System.Security.Claims
Imports Microsoft.AspNet.Identity
Imports Microsoft.AspNet.Identity.EntityFramework
Imports Microsoft.AspNet.Identity.Owin
Imports Microsoft.Owin
Imports Microsoft.Owin.Security
public function SendAsync(message as IdentityMessage) as task
dim credentialUserName = "郵箱登錄名"
dim sentFrom = "你的郵箱地址"
dim pwd= "郵箱登錄密碼";
dim client as new System.Net.Mail.SmtpClient("smtp服務器地址")
client.Port = 25'mtp郵件服務器端口
client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network
client.UseDefaultCredentials = false
dim credentials as new System.Net.NetworkCredential(credentialUserName, pwd)
client.EnableSsl = true
client.Credentials = credentials
dim mail as new System.Net.Mail.MailMessage(sentFrom, message.Destination)
mail.Subject = message.Subject
mail.Body = message.Body
return client.SendMailAsync(mail)
end function