VBS腳本發送郵件基礎教程,解決報錯:與服務器的傳輸連接失敗,代碼80040213 發送郵件服務器vbscdo代碼


教程地址:https://www.runoob.com/vbscript/vbscript-tutorial.html

 
Dim name
Function test1()
MsgBox "lalal"
test1 = 1
End Function
name=test1()
MsgBox name
以上代碼中可以看見  函數返回值是用函數名 = 值  的方式來返回

代碼如下


 

function Send_mail(You_Account,You_Password,Send_Email,Send_Email2,Send_Topic,Send_Body,Send_Attachment)
'code by NetPatch
'VBS發送郵件參數說明
'You_Account:你的郵件帳號
'You_Password:你的郵件密碼
'Send_Email: 主要郵件地址
'Send_Email2: 備用郵件地址
'Send_Topic: 郵件主題
'Send_Body: 郵件內容
'Send_Attachment:郵件附件

You_ID=Split(You_Account, "@", -1, vbTextCompare) '字符串分隔
'帳號和服務器分離
MS_Space = "http://schemas.microsoft.com/cdo/configuration/"
'這個是必須要的,不過可以放心的事,不會通過微軟發送郵件
Set Email = CreateObject("CDO.Message")
Email.From = You_Account
'這個一定要和發送郵件的帳號一樣
Email.To = Send_Email '要發給誰

If Send_Email2 <> "" Then
Email.CC = Send_Email2 '備用發給誰
End If

Email.Subject = Send_Topic '郵件主題
Email.Textbody = Send_Body '郵件內容

If Send_Attachment <> "" Then
Email.AddAttachment Send_Attachment '郵件附件
End If

With Email.Configuration.Fields
.Item(MS_Space&"sendusing") = 2 '發信端口
.Item(MS_Space&"smtpserver") = "smtp."&You_ID(1) 'SMTP服務器地址
.Item(MS_Space&"smtpserverport") = 25 'SMTP服務器端口
.Item(MS_Space&"smtpauthenticate") = 1 '服務器認證方式
.Item(MS_Space&"sendusername") = You_Account '你的郵件帳號
.Item(MS_Space&"sendpassword") = You_Password '你的郵件密碼
.Item(schema & "smtpusessl") = True '是否使用SSL
.Item(schema & "smtpconnectiontimeout") = 20
.Update
End With
Email.Send
'發送郵件
Set Email=Nothing
'關閉組件

Send_Mail=True
'如果沒有任何錯誤信息,則表示發送成功,否則發送失敗
If Err Then
Err.Clear
Send_Mail=False
End If
End Function

'以下是利用上面的函數發送帶附件的郵件例子
If Send_Mail("account@163.com","password.","test@qq.com","","日志文件","郵件內容","d:\log.txt")=True Then
MsgBox "Success"
Else
MsgBox "fail"
End If

 


 

錯誤列舉

1. 與服務器的傳輸鏈接失敗

 

 解決方案,是我原來的代碼開啟了SSL鏈接 而網易的SSL的鏈接是25端口而非465端口,將端口改一下 就可以用了,

 

 

 

測試發送郵件的賬號盡量別使用qq郵箱 有問題 

因為qq郵箱有一個授權碼的問題,導致不能登賬號

 

 

 

 

 

 

以下是用qq郵箱成功發送的郵件代碼

 


function Send_mail(You_Account,You_Password,Send_Email,Send_Email2,Send_Topic,Send_Body,Send_Attachment)
'code by NetPatch
'VBS發送郵件參數說明
'You_Account:你的郵件帳號
'You_Password:你的郵件密碼
'Send_Email: 主要郵件地址
'Send_Email2: 備用郵件地址
'Send_Topic: 郵件主題
'Send_Body: 郵件內容
'Send_Attachment:郵件附件

You_ID=Split(You_Account, "@", -1, vbTextCompare) '字符串分隔
'帳號和服務器分離
MS_Space = "http://schemas.microsoft.com/cdo/configuration/"
'這個是必須要的,不過可以放心的事,不會通過微軟發送郵件
Set Email = CreateObject("CDO.Message")
Email.From = You_Account
'這個一定要和發送郵件的帳號一樣
Email.To = Send_Email '要發給誰

If Send_Email2 <> "" Then
Email.CC = Send_Email2 '備用發給誰
End If

Email.Subject = Send_Topic '郵件主題
Email.Textbody = Send_Body '郵件內容

If Send_Attachment <> "" Then
Email.AddAttachment Send_Attachment '郵件附件
End If

With Email.Configuration.Fields
.Item(MS_Space&"sendusing") = 2 '發信端口
.Item(MS_Space&"smtpserver") = "smtp."&You_ID(1) 'SMTP服務器地址
.Item(MS_Space&"smtpserverport") = 25 'SMTP服務器端口
.Item(MS_Space&"smtpauthenticate") = 1 '服務器認證方式
.Item(MS_Space&"sendusername") = You_Account '你的郵件帳號
.Item(MS_Space&"sendpassword") = You_Password '你的郵件密碼
'.Item(schema & "smtpusessl") = True '是否使用SSL
.Item(schema & "smtpconnectiontimeout") = 20
.Update
End With
Email.Send
'發送郵件
Set Email=Nothing
'關閉組件

Send_Mail=True
'如果沒有任何錯誤信息,則表示發送成功,否則發送失敗
If Err Then
Err.Clear
Send_Mail=False
End If
End Function

'以下是利用上面的函數發送帶附件的郵件例子
If Send_Mail("account@163.com","授權碼","test@qq.com","","日志文件","郵件內容","d:\log.txt")=True Then

'一定要注意 這邊的密碼不是qq郵箱賬號密碼,而是qq生成的授權碼
MsgBox "Success"
Else
MsgBox "fail"
End If


 參考鏈接:qq, 如何設置POP3/SMTP的SSL加密方式?

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM