ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 32809|回复: 17

[已解决] 利用VBA发邮件

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-7-28 11:26 | 显示全部楼层 |阅读模式
本帖最后由 王南帅 于 2013-7-28 11:27 编辑

各位大侠,你们好
       小弟引用了VBA中的ADO函数来发邮件,而且参照了相关资料,想写一段将程序代码所在的工作薄文件作为附件,发送到163邮箱里面,但不知163邮箱的服务器端口和发送端口是什么,所以特来请教,而且我参照资料,写下代码后,程序又弹出“STUI未定义的提示”到底该怎么弄,请大侠们指教,万分感谢中,我的代码如下:
Private Sub CommandButton1_Click()
Dim cm As New CDO.Message
cm.From = "wnn19841213@163.com" '设置发信人的邮箱"
cm.To = "57wk@163.com" '设置收信人的邮箱
cm.Subject = Range("C5").Value & Format(Now, "yyyymmdd") & "跨界断面附表8" '设定邮件的主题
cm.AddAttachment ThisWorkbook.FullName
stUl = "http://schemas.microsoft.com/cdo/configuration/" '微软服务器网址
With cm.Configuration.Fields
    .Item(stUl & "smtpserver") = "smtp.163.com"         'SMTP服务器地址
    .Item(stUl & "smtpserverport") = 25             'SMTP服务器端口
    .Item(stUl & "sendusing") = 25                       '发送端口
    .Item(stUl & "smtpauthenticate") = 1      '需要提供用户名和密码,0是不提供           '
    .Item(stUl & "sendusername") = "wnn19841213"                '发送方邮箱名称
    .Item(stUl & "sendpassword") = "123321"                  '发送方邮箱密码
    .Update
End With
cm.Send '最后当然是执行发送了
Set cm = Nothing
'发送成功后即时释放对象
End Sub

TA的精华主题

TA的得分主题

发表于 2013-7-28 11:48 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
参考我的这个帖子的类似代码:
http://club.excelhome.net/thread-665669-1-1.html

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-7-28 11:50 | 显示全部楼层
本帖最后由 王南帅 于 2013-7-28 21:25 编辑

我作的CDO引用如下:
QQ截图20130728114920.jpg
各位大侠,我将我的VBA代码作了些调整,虽然能够发送EXCEL文件,但发送后的文件,无法打开,提示如下
QQ截图20130728201721.jpg
我的VBA代码是:
Sub 发送邮件()
Range("B4").Value = ""
ActiveWorkbook.SaveCopyAs "C:\Documents and Settings\Administrator\桌面\跨界断面附表" & Format(Now, "yyyymmdd") & ".xls"
Dim cm As New CDO.Message
cm.From = "wnn19841213@163.com" '设置发信人的邮箱"
cm.To = "57wk@163.com" '设置收信人的邮箱
cm.Subject = Range("C5").Value & Format(Now, "yyyymmdd") & "跨界断面附表8" '设定邮件的主题
cm.AddAttachment "C:\Documents and Settings\Administrator\桌面\跨界断面附表" & Format(Now, "yyyymmdd") & ".xls"
stUl = "http://schemas.microsoft.com/cdo/configuration/" '微软服务器网址
With cm.Configuration.Fields
    .Item(stUl & "smtpserver") = "smtp.163.com"  'SMTP服务器地址
    .Item(stUl & "smtpserverport") = 25             'SMTP服务器端口
    .Item(stUl & "sendusing") = 2                  '发送端口
    .Item(stUl & "smtpauthenticate") = 1      '需要提供用户名和密码,0是不提供           '
    .Item(stUl & "sendusername") = "wnn19841213"                '发送方邮箱名称
    .Item(stUl & "sendpassword") = "123"                  '发送方邮箱密码
    .Update
End With
cm.Send
Set cm = Nothing
End Sub
请大家看看,为什么发送后文件会打不开,是不是因为163邮箱的发送端口设置错误,谢谢各位了

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-7-28 20:20 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
请各位看看

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-7-28 21:23 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-7-28 21:30 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-7-28 22:05 | 显示全部楼层
怎么没人回答小弟啊,小弟痛哭无泪啊

TA的精华主题

TA的得分主题

发表于 2013-7-28 22:57 | 显示全部楼层
我之前在网上找一个,经测试,可以正常使用,你可以参考。
它是自已发送出去,但不会出现你说的打不开的情况

使用Excel通过VBA调用CDO发邮件.zip

13.57 KB, 下载次数: 2656

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-7-28 23:02 | 显示全部楼层
蓝虾 发表于 2013-7-28 22:57
我之前在网上找一个,经测试,可以正常使用,你可以参考。
它是自已发送出去,但不会出现你说的打不开的情 ...

好的,谢谢您

TA的精华主题

TA的得分主题

发表于 2014-8-13 00:33 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
留个记号,这两天刚好有需要这样的操作,列表的客户信息,发送相对应的邮件内容!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-10 12:38 , Processed in 0.026861 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表