相當多的郵件服務器不支持大附件,一般為32MB,網易的是50MB。參照鏈接:

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:域名申請、網絡空間、營銷軟件、網站建設、雙灤網站維護、網站推廣。
所以發送失敗未必是你代碼的問題。很有可能是你服務器的問題。請找一個支持大附件的郵箱試一試,找不到的話看能不能把附件拆到32M以下,然后多次發送。
在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
最簡捷的方法,發件人地址這樣表示就可以了
Someone user@domain.com
這段代碼我執行無誤,不太清楚題主是如何異步發送的,題主也沒給出錯誤究竟是什么,所以無從判斷。
只能說需要手動釋放,或者用?message?=?Nothing?也可以釋放。
【針對問題補充的回答】
注釋行已去掉,仍能正常運行,可能跟網絡環境有關。
另外不知題主 AddHandler client.SendCompleted, AddressOf SendCompletedCallback 這行中的回調函數 SendCompletedCallback 是怎么寫的,我寫的是:
Private?Function?SendCompletedCallback(ByVal?sender?As?Object,?ByVal?e?As?System.ComponentModel.AsyncCompletedEventArgs)
If?e.Cancelled?Then
REM?郵件發送被取消
ElseIf?e.Error.ToString??""?Then
REM?郵件發送失敗
Else
REM?發送成功
End?If?
End?Function
另外建議用 Try-Ctach-End Try 結構,并在釋放前設置延時函數。
新聞名稱:關于vb.netsmtp的信息
URL分享:http://www.yijiale78.com/article0/hihhio.html
成都網站建設公司_創新互聯,為您提供軟件開發、自適應網站、全網營銷推廣、網站制作、網站改版、網站排名
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯