shorelew@ 发表于 2008-1-18 16:52:39

用vbs直接发带附件的邮件,好用就顶起!

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 If

--------------------------------------------------------------------------------------------------------------------------------------------
网上资源真是丰富啊,转贴于http://hi.baidu.com/myvbscript/blog/item/6026c1c8820d53147e3e6f1f.html

three116 发表于 2008-1-18 19:02:14

我前几天在研究这个,你总结的还不错
不过问你个问题,我的是2000的系统,为什么报不能创建CDO对象,怎么解决?
我在其他机器上都可以发送!

[ 本帖最后由 three116 于 2008-1-18 19:04 编辑 ]

sunqiang1024 发表于 2010-6-17 17:27:02

是不是你缺少dll,看看我的附件

huamini 发表于 2012-4-12 11:50:15

我在想如何才能发多个附件,有什么好方法吗
页: [1]
查看完整版本: 用vbs直接发带附件的邮件,好用就顶起!