|
我拜读网上以下两篇文章也不行
我开始有点怀疑 楼主在发这篇文章时 不知测试过成功没有 请批评
用VBA+Jmail发邮件
阅读(160) 评论(0) 发表时间:2009年02月24日 23:50
本文地址:http://qzone.qq.com/blog/4933188-1235490622
本文标签: JmailMsg Jmail 邮件 Smtp 发件人
据说这属于传说中的宏病毒发邮件的程序
1.下载Jmail组件(网上很多),并注册注册jmail组件:regsvr32 jmail.dll
2.在VBA编辑器里面, 工具---引用--添加JMAIL 4.0 LIBRARY。
3.在excel中添加一个模块
Sub 发送邮件
'Send email
Subject = "VBA" '邮件标题
Body = "VBA SEND EMAIL" ' 邮件内容
' Body 邮件内容
isHtml = True ' 是否发送Html格式邮件 (true 是)
HtmlBody = "VBA SEND EMAIL " ' Html格式邮件内容"
MailTo = "xiaofeng1982@163.com" ' 收件人Email
From = "xiaofeng1982@163.com" ' '发件人Email
FromName = "xiaofeng1982@163.com" '发件人姓名
Smtp = "smtp.163.com" 'smtp服务器
Username = "xiaofeng1982@163.com" '邮箱用户名
Password = "" '邮箱密码
Select Case JmailSend(attachFile, Subject, Body, isHtml, HtmlBody, MailTo, From, FromName, Smtp, Username, Password)
Case "N"
MsgBox ("发送失败")
Case "Y"
MsgBox ("发送ok")
End Select
End Sub
Function JmailSend(attachFile, Subject, Body, isHtml, HtmlBody, MailTo, From, FromName, Smtp, Username, Password)
'=================================================
'函数名:JmailSend
'作 用:用Jmail发送邮件
'参 数:Subject 邮件标题
' Body 邮件内容
' Body 邮件内容
' isHtml 是否发送Html格式邮件 (true 是)
' HtmlBody Html格式邮件内容
' MailTo 收件人Email
' From 发件人Email
' FromName 发件人姓名
' Smtp smtp服务器
' Username 邮箱用户名
' Password 邮箱密码
'返回值:JmailSend="N" 发送失败 JmailSend="Y" 发送成功
'~~~~~~~~~~suercool~~~~~
'=================================================
Dim JmailMsg
'Set JmailMsg = server.CreateObject("jmail.message")
Set JmailMsg = New jmail.Message
JmailMsg.MailServerUserName = Username '如果是在局域网中可以不要验证
JmailMsg.MailServerPassWord = Password
JmailMsg.AddRecipient MailTo
JmailMsg.From = From
JmailMsg.FromName = FromName
JmailMsg.Charset = "gb2312"
JmailMsg.ContentType = "text/html"
JmailMsg.Priority = 1
JmailMsg.Logging = True
JmailMsg.Silent = True
JmailMsg.Subject = Subject
'JmailMsg.Body = Body
'JmailMsg.AddAttachment = "" ' attachFile
'If isHtml = True Then JmailMsg.HtmlBody = HtmlBody
JmailMsg.HtmlBody = HtmlBody
If Not JmailMsg.Send(Smtp) Then
JmailSend = "N"
Else
JmailSend = "Y"
End If
JmailMsg.Close
Set JmailMsg = Nothing
'MsgBox (JmailSend) '测试时可以用
End Function
4. 保存,关闭excel,重新打开,点击该按钮,即可发送成功!:-) (注意防火墙和杀毒软件阻挡!!)
可以在网络上搜索 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 协议接收邮件。下面看一段接收邮件的代码:
'使用 JMail 组件来发送邮件
Function JmailSend(Subject, HtmlBody, MailTo)
Dim JmailMsg As New jmail.Message
With JmailMsg
.Encoding = "GBK"
.MailServerUserName = "Unmi" 'smtp 验证用户名
.MailServerPassWord = "xxxxxx" 'smtp 验证密码
.AddRecipient MailTo '收件人
.AddRecipientCC "fantasia@sina.com" '抄送
.AddRecipientBCC "broodwar@2911.net" '暗送
.From = "unmi@2911.net"
.FromName = "隔叶黄莺"
.Charset = "GBK"
.ContentType = "text/html"
'.Priority = 1 '重要级别
.Logging = True '为 True,可用 JmailMsg.Log 获得与服务器交互的详细日志信息
.Silent = True '为 True,出错时会有 JmailMsg.ErrorMessage 回送消息
.Subject = Subject
'.Body = HtmlBody '作为纯文本内容发送,设置 Body 属性
.HtmlBody = HtmlBody '用这个可以发送 Html 内容
.AddAttachment "c:\users.ctl" '发送附件
If .Send("mail.2911.net") Then '指定邮件服务器
JmailSend = "发送成功"
Else
JmailSend = JmailMsg.ErrorMessage
End If
MsgBox JmailMsg.Log
.Close
End With
Set JmailMsg = Nothing
End Function
在 Excel 的 Microsoft Visual Basic 编辑器中要引用注册的“JMail 4.0 Library”, 代码中的 AddXxx 方法可以执行多次,如增加多个收件人、多个附件等。真正实现批量全自动发送,程序中可动态的选择邮件服务器。
用 w3 JMail 组件比起调用 Outlook 可要方便的多,Outlook 可以不用配置,发布时只需要带个 jmail.dll 动态库,用 regsvr32 jmail.dll 注册一下即可。
[ 本帖最后由 泓() 于 2009-6-25 07:54 编辑 ] |
评分
-
1
查看全部评分
-
|