返回列表 发帖

[技术讨论] [分享]用VBS发送带附件的邮件

from lcx's blog
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     'cdobasec
    .Item(MS_Space&"sendusername") = You_ID(0)    '你的邮件帐号
    .Item(MS_Space&"sendpassword") = You_Password   '你的邮件密码
    .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("test@163.com","test","test2@163.com","","邮件主题","邮件内容","d:\test.exe")=True Then
Wscript.Echo "发送成功"
Else
Wscript.Echo "发送失败"
End IfCOPY
命令行参考:hh.exe ntcmds.chm::/ntcmds.htm
求助者请拿出诚心,别人才愿意奉献热心!
把查看手册形成条件反射!

看不懂!不知道如何应用!

TOP

发送成功了吗?

TOP

代码在复制到论坛的时候可能有些字符被转化了 比如引号变成 &quote;
调整了一下
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     'cdobasec
    .Item(MS_Space & "sendusername") = You_ID(0)    '你的邮件帐号
    .Item(MS_Space & "sendpassword") = You_Password   '你的邮件密码
    .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("test@163.com","test","test2@163.com","","邮件主题","邮件内容","d:\test.exe")=True Then
Wscript.Echo "发送成功"
Else
Wscript.Echo "发送失败"
End IfCOPY
[url=][/url]

TOP

本帖最后由 cindyscm 于 2012-3-30 09:07 编辑

补充一下:
5楼更新后的这个脚本我测试过是可以用的

非常感谢楼主和5楼同学!

TOP

感谢一楼和5楼的同学, 收下了.

TOP

返回列表