VBA 中发送邮件(二. 使用 JMail 组件)
来源:百度文库 编辑:神马文学网 时间:2024/04/20 11:24:38
在上一篇 VBA 中发送邮件(使用 Outlook)中,VBA 通过 Outlook 来发邮件不仅频繁的弹出提示窗口要求确定,而且需要在 Outlook 中配置好,不能随意使用邮件服务器。对此,是否有相当于 JavaMail 那样的第三方组件呢?Google 帮忙,果然找到一个,名曰 w3 JMail,J 为首,其实与 Java 无任何关系。
可以在网络上搜索 w3 JMail Personal V4.3,或者直接到官网 http://www.dimac.net 去下载,w3 Jmail 的授权方式是免费的。默认位置安装好 JMail 之后,是在 C:\Program Files\Dimac\w3JMail4 可以看到 Examples 目录、jmail.dll、w3jmail4.pdf 和 readme.txt 文件。可以查阅w3jmail4.pdf 中的使用帮助。我们所要的文件其实只是那个 jmail.dll,安装程序会自动帮你注册 jmail.dll。若未运行安装程序,只是拷贝了 jmail.dll,则要运行 regsvr32 jmail.dll 注册它即可。
可以看看那个 Examples 目录,发现可支持 ASP、Assembly、Delphi、Visual C++、xml,自然像 JS、VBS、VB、VBA 那样的语言中也能使用。它不仅可以用来发送邮件,也能通过 POP 协议接收邮件。下面看一段接收邮件的代码:
01.'使用 JMail 组件来发送邮件
02.Function JmailSend(Subject, HtmlBody, MailTo)
03. Dim JmailMsg As New jmail.Message
04. With JmailMsg
05. .Encoding = "GBK"
06. .MailServerUserName = "Unmi" 'smtp 验证用户名
07. .MailServerPassWord = "xxxxxx" 'smtp 验证密码
08. .AddRecipient MailTo '收件人
09. .AddRecipientCC "fantasia@sina.com" '抄送
10. .AddRecipientBCC "broodwar@2911.net" '暗送
11. .From = "unmi@2911.net"
12. .FromName = "隔叶黄莺"
13. .Charset = "GBK"
14. .ContentType = "text/html"
15. '.Priority = 1 '重要级别
16. .Logging = True '为 True,可用 JmailMsg.Log 获得与服务器交互的详细日志信息
17. .Silent = True '为 True,出错时会有 JmailMsg.ErrorMessage 回送消息
18. .Subject = Subject
19. '.Body = HtmlBody '作为纯文本内容发送,设置 Body 属性
20. .HtmlBody = HtmlBody '用这个可以发送 Html 内容
21.
22. .AddAttachment "c:\users.ctl" '发送附件
23.
24. If .Send("mail.2911.net") Then '指定邮件服务器
25. JmailSend = "发送成功"
26. Else
27. JmailSend = JmailMsg.ErrorMessage
28. End If
29. MsgBox JmailMsg.Log
30. .Close
31. End With
32. Set JmailMsg = Nothing
33.End Function
在 Excel 的 Microsoft Visual Basic 编辑器中要引用注册的“JMail 4.0 Library”, 代码中的 AddXxx 方法可以执行多次,如增加多个收件人、多个附件等。真正实现批量全自动发送,程序中可动态的选择邮件服务器。
用 w3 JMail 组件比起调用 Outlook 可要方便的多,Outlook 可以不用配置,发布时只需要带个 jmail.dll 动态库,用 regsvr32 jmail.dll 注册一下即可。
可以在网络上搜索 w3 JMail Personal V4.3,或者直接到官网 http://www.dimac.net 去下载,w3 Jmail 的授权方式是免费的。默认位置安装好 JMail 之后,是在 C:\Program Files\Dimac\w3JMail4 可以看到 Examples 目录、jmail.dll、w3jmail4.pdf 和 readme.txt 文件。可以查阅w3jmail4.pdf 中的使用帮助。我们所要的文件其实只是那个 jmail.dll,安装程序会自动帮你注册 jmail.dll。若未运行安装程序,只是拷贝了 jmail.dll,则要运行 regsvr32 jmail.dll 注册它即可。
可以看看那个 Examples 目录,发现可支持 ASP、Assembly、Delphi、Visual C++、xml,自然像 JS、VBS、VB、VBA 那样的语言中也能使用。它不仅可以用来发送邮件,也能通过 POP 协议接收邮件。下面看一段接收邮件的代码:
01.'使用 JMail 组件来发送邮件
02.Function JmailSend(Subject, HtmlBody, MailTo)
03. Dim JmailMsg As New jmail.Message
04. With JmailMsg
05. .Encoding = "GBK"
06. .MailServerUserName = "Unmi" 'smtp 验证用户名
07. .MailServerPassWord = "xxxxxx" 'smtp 验证密码
08. .AddRecipient MailTo '收件人
09. .AddRecipientCC "fantasia@sina.com" '抄送
10. .AddRecipientBCC "broodwar@2911.net" '暗送
11. .From = "unmi@2911.net"
12. .FromName = "隔叶黄莺"
13. .Charset = "GBK"
14. .ContentType = "text/html"
15. '.Priority = 1 '重要级别
16. .Logging = True '为 True,可用 JmailMsg.Log 获得与服务器交互的详细日志信息
17. .Silent = True '为 True,出错时会有 JmailMsg.ErrorMessage 回送消息
18. .Subject = Subject
19. '.Body = HtmlBody '作为纯文本内容发送,设置 Body 属性
20. .HtmlBody = HtmlBody '用这个可以发送 Html 内容
21.
22. .AddAttachment "c:\users.ctl" '发送附件
23.
24. If .Send("mail.2911.net") Then '指定邮件服务器
25. JmailSend = "发送成功"
26. Else
27. JmailSend = JmailMsg.ErrorMessage
28. End If
29. MsgBox JmailMsg.Log
30. .Close
31. End With
32. Set JmailMsg = Nothing
33.End Function
在 Excel 的 Microsoft Visual Basic 编辑器中要引用注册的“JMail 4.0 Library”, 代码中的 AddXxx 方法可以执行多次,如增加多个收件人、多个附件等。真正实现批量全自动发送,程序中可动态的选择邮件服务器。
用 w3 JMail 组件比起调用 Outlook 可要方便的多,Outlook 可以不用配置,发布时只需要带个 jmail.dll 动态库,用 regsvr32 jmail.dll 注册一下即可。
VBA 中发送邮件(二. 使用 JMail 组件)
VBA 中发送邮件(一. 使用 Outlook 组件)
ASP.Net环境下使用Jmail组件发送邮件
用Excel发邮件:VBA+Jmail实现用Excel拆分数据并发送邮件
用Excel发邮件:VBA+Jmail实现用Excel拆分数据并发送邮件
利用Jmail发送和接收邮件(C#) - .NET Framework
PB中使用AM消息集成组件进行消息发送
使用SMTP命令发送邮件
发送邮件
《pro Spring》学习笔记之使用Spring+James邮件服务器发送内嵌图片的HTML邮件(转载)
怎样使用电子邮件客户端程序(如 Outlook)来发送和阅读邮件?
Jmail发邮件出现乱码
Jmail发邮件出现乱码
讲解用PHP实现Jmai组件及发送邮件三例
VBA中名称的使用
JMail的使用
发送邮件的方法
Outlook定时发送邮件
c#socket发送邮件
在jsp程序中使用com组件
在jsp程序中使用com组件
使用PHP通过SMTP发送邮件新手指南-伊图教程网
c#socket发送邮件详解
Spring发送邮件简单实例