在上一篇 VBA 中發(fā)送郵件(使用 Outlook)中,VBA 通過 Outlook 來發(fā)郵件不僅頻繁的彈出提示窗口要求確定,而且需要在 Outlook 中配置好,不能隨意使用郵件服務(wù)器。對(duì)此,是否有相當(dāng)于 JavaMail 那樣的第三方組件呢?Google 幫忙,果然找到一個(gè),名曰 w3 JMail,J 為首,其實(shí)與 Java 無任何關(guān)系。
可以在網(wǎng)絡(luò)上搜索 w3 JMail Personal V4.3,或者直接到官網(wǎng) http://www.dimac.net 去下載,w3 Jmail 的授權(quán)方式是免費(fèi)的。默認(rèn)位置安裝好 JMail 之后,是在 C:\Program Files\Dimac\w3JMail4 可以看到 Examples 目錄、jmail.dll、w3jmail4.pdf 和 readme.txt 文件??梢圆殚唚3jmail4.pdf 中的使用幫助。我們所要的文件其實(shí)只是那個(gè) jmail.dll,安裝程序會(huì)自動(dòng)幫你注冊(cè) jmail.dll。若未運(yùn)行安裝程序,只是拷貝了 jmail.dll,則要運(yùn)行 regsvr32 jmail.dll 注冊(cè)它即可。
可以看看那個(gè) Examples 目錄,發(fā)現(xiàn)可支持 ASP、Assembly、Delphi、Visual C++、xml,自然像 JS、VBS、VB、VBA 那樣的語言中也能使用。它不僅可以用來發(fā)送郵件,也能通過 POP 協(xié)議接收郵件。下面看一段接收郵件的代碼:
01.'使用 JMail 組件來發(fā)送郵件
02.Function JmailSend(Subject, HtmlBody, MailTo)
03. Dim JmailMsg As New jmail.Message
04. With JmailMsg
05. .Encoding = "GBK"
06. .MailServerUserName = "Unmi" 'smtp 驗(yàn)證用戶名
07. .MailServerPassWord = "xxxxxx" 'smtp 驗(yàn)證密碼
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 '重要級(jí)別
16. .Logging = True '為 True,可用 JmailMsg.Log 獲得與服務(wù)器交互的詳細(xì)日志信息
17. .Silent = True '為 True,出錯(cuò)時(shí)會(huì)有 JmailMsg.ErrorMessage 回送消息
18. .Subject = Subject
19. '.Body = HtmlBody '作為純文本內(nèi)容發(fā)送,設(shè)置 Body 屬性
20. .HtmlBody = HtmlBody '用這個(gè)可以發(fā)送 Html 內(nèi)容
21.
22. .AddAttachment "c:\users.ctl" '發(fā)送附件
23.
24. If .Send("mail.2911.net") Then '指定郵件服務(wù)器
25. JmailSend = "發(fā)送成功"
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 編輯器中要引用注冊(cè)的“JMail 4.0 Library”, 代碼中的 AddXxx 方法可以執(zhí)行多次,如增加多個(gè)收件人、多個(gè)附件等。真正實(shí)現(xiàn)批量全自動(dòng)發(fā)送,程序中可動(dòng)態(tài)的選擇郵件服務(wù)器。
用 w3 JMail 組件比起調(diào)用 Outlook 可要方便的多,Outlook 可以不用配置,發(fā)布時(shí)只需要帶個(gè) jmail.dll 動(dòng)態(tài)庫,用 regsvr32 jmail.dll 注冊(cè)一下即可。
聯(lián)系客服