知道了 是你是用自己的郵箱做發(fā)信人的吧一定是你的郵箱沒有開smtp服務權限,你到你的郵箱的設置里把“容許通過smtp發(fā)送郵件”選上就行了
創(chuàng)新互聯(lián)建站客戶idc服務中心,提供四川電信科技城機房、成都服務器、成都主機托管、成都雙線服務器等業(yè)務的一站式服務。通過各地的服務中心,我們向成都用戶提供優(yōu)質廉價的產品以及開放、透明、穩(wěn)定、高性價比的服務,資深網絡工程師在機房提供7*24小時標準級技術保障。
貼上來是其中一個貼子,其他的內容在參考資料的網址里
Visual Basic 6中發(fā)送郵件的新方法
用VB6編寫發(fā)送郵件的程序,有多種E-mail組件可供選擇,如MAPIMessages、IIS4.0附帶的CDONTS(NTS Collaboration Data Objects)以及許多第三方廠商開發(fā)的Email軟件等。本文介紹用CDONTS開發(fā)VB下的郵件程序方法。
1. 確認已安裝SMTP服務器
首先,必須確認在IIS服務器上已安裝SMTP服務器,這是安裝Option Pack時被缺省安裝的選項。如果SMTP服務器已安裝,在System32目錄下會存在一個名為cdonts.dll的文件。
2. 最簡單的郵件發(fā)送程序
以下是一個最簡單的郵件發(fā)送程序,它由me@hotmail.net向abc@263.net發(fā)出一封標題為“Title”、內容為“Hello”的E-mail:
Private Sub cmdSendMail_Click()
Dim objMail as Object
Set objMail=CreateObject("CDFONTS.DLL")
ObjMail.Send "me@hotmail.net ", "abc@263.net","Title","Hello"
Set objMail=nothing
End Sub
3. 發(fā)送郵件附件
如果有附加的文件需要隨同郵件傳送,可以使用CDONTS的AttachFile方法:
Private Sub cmdSendMail_Click()
Dim objMail as Object
Set objMail=CreateObject("CDFONTS.DLL")
With ObjMail
.From= "me@hotmail.net "
.To= "abc@263.net"
.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:郵件發(fā)送者的地址
To :郵件接受者的地址
Subject:標題
Body:內容
BodyFormat:內容格式,1-普通文本;0-超文本
方法:
AttachFile:附加一個文件
AttachURL:附加一個地址
Send:發(fā)送郵件
5. 發(fā)送超文本格式的E-mail
你一定見到過許多使用超文本格式的E-mail,其中不但可以有圖片、聲音,甚至還可以嵌入動畫。如果給你的朋友也發(fā)送一封這樣的郵件,一定會帶給他(她)意外的驚喜,因為這用一般的郵件發(fā)送程序是無能為力的。以下使用CDONTS組件發(fā)送一個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發(fā)送Email的例子"
StrHTML= StrHTML+"
"
StrHTML= StrHTML+"
以上例子嵌入了圖片sample.gif
"
StrHTML= StrHTML+""
With ObjMail
.From= "me@hotmail.net "
.To= "abc@263.net"
.Subject="Title"
.Body=strHTML
.AttachURL "c:\mydata\sample.gif","sample.gif"
.BodyFormat=0
.EmailFormat=0
.Send
End With
Set objMail=nothing
End Sub
到這里,相信大家一定發(fā)現(xiàn)SMTP郵件處理的一個缺陷了。SMTP服務器接收你的輸出消息,但并不做發(fā)送者名字和地址的驗證,這本是由SMTP的異步發(fā)送機制所決定的,但有人可能別有用心地用它來假扮別人發(fā)送郵件!本文強烈建議各位切勿輕易試用,一旦讓ISP知道你的行徑,你的帳號極可能會被立即刪除。
在Identity2.0里面封裝了IIdentityMessageService接口,可以用來發(fā)送接收郵件。
看看
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
'創(chuàng)建發(fā)件連接,根據(jù)你的發(fā)送郵箱的SMTP設置填充
Dim smtp As New System.Net.Mail.SmtpClient("smtp.163.com", 25)
'發(fā)件郵箱身份驗證,參數(shù)分別為 發(fā)件郵箱登錄名和密碼
smtp.Credentials = New System.Net.NetworkCredential("用戶名", "密碼")
'創(chuàng)建郵件
Dim mail As New System.Net.Mail.MailMessage()
'郵件主題
mail.Subject = "郵件主題"
'主題編碼
mail.SubjectEncoding = System.Text.Encoding.GetEncoding("GB2312")
'郵件正文件編碼
mail.BodyEncoding = System.Text.Encoding.GetEncoding("GB2312")
'發(fā)件人郵箱
mail.From = New System.Net.Mail.MailAddress("example@163.com")
'郵件優(yōu)先級
mail.Priority = System.Net.Mail.MailPriority.Normal
'HTML格式的郵件,為false則發(fā)送純文本郵箱
mail.IsBodyHtml = True
'郵件內容
mail.Body = "郵件正文內容"
'添加收件人,如果有多個,可以多次添加
mail.To.Add("收件人地址")
'定義附件,參數(shù)為附件文件名,包含路徑,推薦使用絕對路徑
'如果不需要附件,下面三行可以不要
Dim a As New System.Net.Mail.Attachment("附件文件")
'附件文件名,用于收件人收到附件時顯示的名稱
a.Name = "附件文件名"
'加入附件,可以多次添加
mail.Attachments.Add(a)
'發(fā)送郵件
Try
smtp.Send(mail)
MessageBox.Show("發(fā)送成功")
Catch
MessageBox.Show("發(fā)送失敗")
Finally
mail.Dispose()
End Try