2016-07-23 107 views
0

我尝试编写一个vbscript,将带有一些附件的电子邮件发送到另一封电子邮件。但是当我尝试在窗口cmd中执行脚本时,它显示错误消息“服务器拒绝发件人。服务器响应为530 5.7.0。必须发出STARTLS”必须为vbscript发送电子邮件时发出STARTTLS错误

我尝试将端口更改为465或587为Google SMTP端口/加密。但它也没有工作

下面是我的VBScript:

Set email = CreateObject("CDO.Message") 
email.Subject = "Test Email" 
email.From = "[email protected]" 
email.To = "[email protected]" 
email.TextBody = "Message Text." 
email.AddAttachment "C:\Users\fuckYou\Desktop\Handover\v.txt" 
email.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 
email.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com" 
email.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465 
email.Fields("http://schemas.microsoft.com/cdo/configuration/smtpusessl")  = true 
email.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = "username" 
email.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password" 
email.Configuration.Fields.Update 
email.Send 
set email = Nothing 

回答

0
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 

你缺少一个字段。

在您使用的帐户上检查您的收件箱。 Google因新程序的签名而阻止您。 点击链接电子邮件从谷歌

这是我的完整脚本,用户名/密码为空白。请确保您的帐户符合要求。

运行此在命令提示符下,你不必点击ok 20倍,

cscript //nologo script.vbs 

Script.vbs

On Error Resume next 
Set emailObj  = CreateObject("CDO.Message") 
emailObj.From  = "[email protected]" 

emailObj.To  = "[email protected]" 

emailObj.Subject = "Test CDO" 
emailObj.TextBody = "Test CDO" 

Set emailConfig = emailObj.Configuration 

For each f in emailConfig.Fields 
    wscript.echo f.name & " " & f 
Next 

msgbox emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") 


emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com" 
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465 
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpusessl")  = true 
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = "Dc" 
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "MyPassword" 
emailConfig.Fields.Update 

emailObj.Send 

wscript.echo err.description 

For each f in emailConfig.Fields 
    wscript.echo f.name & " " & f 
Next 



If err.number = 0 then Msgbox "Done" 
+0

我得到一个消息后,我插入缺少的部分,在错误消息显示我传输失败连接到服务器 –

+0

当我在我的窗口cmd中执行此命令时,它显示了第18行有问题,它是email.send语法,此测试脚本正在我的本地PC中运行 –

+0

编辑answer 。点击谷歌电子邮件中的链接。 – 2016-07-24 02:47:09