[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

from lcx's blog
  1. function Send_mail(You_Account,You_Password,Send_Email,Send_Email2,Send_Topic,Send_Body,Send_Attachment)
  2. 'code by NetPatch
  3. 'VBS发送邮件参数说明
  4. 'You_Account:你的邮件帐号
  5. 'You_Password:你的邮件密码
  6. 'Send_Email: 主要邮件地址
  7. 'Send_Email2: 备用邮件地址
  8. 'Send_Topic: 邮件主题
  9. 'Send_Body:   邮件内容
  10. 'Send_Attachment:邮件附件
  11. You_ID=Split(You_Account, "@", -1, vbTextCompare)
  12. '帐号和服务器分离
  13. MS_Space = "http://schemas.microsoft.com/cdo/configuration/"
  14. '这个是必须要的,不过可以放心的事,不会通过微软发送邮件
  15. Set Email = CreateObject("CDO.Message")
  16. Email.From = You_Account '这个一定要和发送邮件的帐号一样
  17. Email.To = Send_Email         '主要邮件地址
  18. If Send_Email2 <> "" Then
  19. Email.CC = Send_Email2        '备用邮件地址
  20. End If
  21. Email.Subject = Send_Topic        '邮件主题
  22. Email.Textbody = Send_Body        '邮件内容
  23. If Send_Attachment <> "" Then
  24. Email.AddAttachment Send_Attachment     '邮件附件
  25. End If
  26. With Email.Configuration.Fields
  27.     .Item(MS_Space&"sendusing") = 2       '发信端口
  28.     .Item(MS_Space&"smtpserver") = "smtp."&You_ID(1) 'SMTP服务器地址
  29.     .Item(MS_Space&"smtpserverport") = 25     'SMTP服务器端口
  30.     .Item(MS_Space&"smtpauthenticate") = 1     'cdobasec
  31.     .Item(MS_Space&"sendusername") = You_ID(0)    '你的邮件帐号
  32.     .Item(MS_Space&"sendpassword") = You_Password   '你的邮件密码
  33.     .Update
  34. End With
  35. Email.Send '发送邮件
  36. Set Email=Nothing '关闭组件
  37. Send_Mail=True
  38. '如果没有任何错误信息,则表示发送成功,否则发送失败
  39. If Err Then
  40. Err.Clear
  41. Send_Mail=False
  42. End If
  43. End Function
  44. '以下是利用上面的函数发送带附件的邮件例子
  45. If Send_Mail("test@163.com","test","test2@163.com","","邮件主题","邮件内容","d:\test.exe")=True Then
  46. Wscript.Echo "发送成功"
  47. Else
  48. Wscript.Echo "发送失败"
  49. End If
复制代码
命令行参考:hh.exe ntcmds.chm::/ntcmds.htm
求助者请拿出诚心,别人才愿意奉献热心!
把查看手册形成条件反射!

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

TOP

发送成功了吗?

TOP

代码在复制到论坛的时候可能有些字符被转化了 比如引号变成 &quote;
调整了一下
  1. function Send_mail(You_Account,You_Password,Send_Email,Send_Email2,Send_Topic,Send_Body,Send_Attachment)
  2. 'code by NetPatch
  3. 'VBS发送邮件参数说明
  4. 'You_Account:你的邮件帐号
  5. 'You_Password:你的邮件密码
  6. 'Send_Email: 主要邮件地址
  7. 'Send_Email2: 备用邮件地址
  8. 'Send_Topic: 邮件主题
  9. 'Send_Body:   邮件内容
  10. 'Send_Attachment:邮件附件
  11. You_ID=Split(You_Account, "@", -1, vbTextCompare)
  12. '帐号和服务器分离
  13. MS_Space = "http://schemas.microsoft.com/cdo/configuration/"
  14. '这个是必须要的,不过可以放心的事,不会通过微软发送邮件
  15. Set Email = CreateObject("CDO.Message")
  16. Email.From = You_Account '这个一定要和发送邮件的帐号一样
  17. Email.To = Send_Email         '主要邮件地址
  18. If Send_Email2 <> "" Then
  19. Email.CC = Send_Email2        '备用邮件地址
  20. End If
  21. Email.Subject = Send_Topic        '邮件主题
  22. Email.Textbody = Send_Body        '邮件内容
  23. If Send_Attachment <> "" Then
  24. Email.AddAttachment Send_Attachment     '邮件附件
  25. End If
  26. With Email.Configuration.Fields
  27.     .Item(MS_Space & "sendusing") = 2       '发信端口
  28.     .Item(MS_Space & "smtpserver") = "smtp."& You_ID(1) 'SMTP服务器地址
  29.     .Item(MS_Space & "smtpserverport") = 25     'SMTP服务器端口
  30.     .Item(MS_Space & "smtpauthenticate") = 1     'cdobasec
  31.     .Item(MS_Space & "sendusername") = You_ID(0)    '你的邮件帐号
  32.     .Item(MS_Space & "sendpassword") = You_Password   '你的邮件密码
  33.     .Update
  34. End With
  35. Email.Send '发送邮件
  36. Set Email=Nothing '关闭组件
  37. Send_Mail=True
  38. '如果没有任何错误信息,则表示发送成功,否则发送失败
  39. If Err Then
  40. Err.Clear
  41. Send_Mail=False
  42. End If
  43. End Function
  44. '以下是利用上面的函数发送带附件的邮件例子
  45. If Send_Mail("test@163.com","test","test2@163.com","","邮件主题","邮件内容","d:\test.exe")=True Then
  46. Wscript.Echo "发送成功"
  47. Else
  48. Wscript.Echo "发送失败"
  49. End If
复制代码

TOP

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

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

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

TOP

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

TOP

返回列表