Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
楼主: Saint_Zuo

[已解决]vba发送邮件报错

[复制链接]
发表于 2013-9-15 14:43 | 显示全部楼层
我的也是,刚去邮箱看了,全收到了。
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

发表于 2013-9-15 14:45 | 显示全部楼层
另外QQ邮箱是可以设置单独密码的,如果你邮箱设置了单独密码,记得用单独密码而非QQ的登陆密码。
回复

使用道具 举报

发表于 2013-9-15 14:51 | 显示全部楼层
QQ截图20130915144837.jpg

这两个要一致,另外就是密码的问题。
邮箱的独立密码和QQ登陆密码是不一样的。
回复

使用道具 举报

发表于 2013-9-15 14:56 | 显示全部楼层    本楼为最佳答案   
  1. Sub CDOSENDEMAIL()

  2.     Dim CDOMail As Object
  3.     Dim STUl As String

  4.     On Error Resume Next    '出错后继续执行
  5.     Application.DisplayAlerts = False    '禁用系统提示
  6.    
  7.     STUl = "http://schemas.microsoft.com/cdo/configuration/"    '微软服务器网址
  8.     'ThisWorkbook.ChangeFileAccess Mode:=xlReadOnly    '将工作簿设置为只读模式
  9.    
  10.     Set CDOMail = CreateObject("CDO.Message")    '创建对象
  11.     With CDOMail
  12.         .From = "163728@qq.com"    '设置发信人的邮箱
  13.         .To = "163728@qq.com"    '设置收信人的邮箱
  14.         .Subject = "主题:用CDO发送邮件试验,时间是:" & Format(Now, "YYYY-MM-DD mm:hh:ss")    '设定邮件的主题
  15.         '.TextBody = "文本内容" '使用文本格式发送邮件
  16.         .HtmlBody = "当您看到此封邮件,表明CDO设置正确"    '使用Html格式发送邮件
  17.         '.AddAttachment ThisWorkbook.FullName    '发送本工作簿为附件
  18.         

  19.         With .Configuration.Fields
  20.             .Item(STUl & "smtpserver") = "smtp.qq.com"    'SMTP服务器地址
  21.             .Item(STUl & "smtpserverport") = 25    'SMTP服务器端口
  22.             .Item(STUl & "sendusing") = 2    '发送端口
  23.             .Item(STUl & "smtpauthenticate") = 1    '远程服务器需要验证
  24.             .Item(STUl & "sendusername") = "163728@qq.com"    '发送方邮箱名称
  25.             .Item(STUl & "sendpassword") = ""    '发送方邮箱密码
  26.             .Item(STUl & "smtpconnectiontimeout") = 60    '连接超时(秒)
  27.             .Update
  28.         End With

  29.         .Send    '执行发送
  30.     End With

  31.     Set CDOMail = Nothing    '发送成功后即时释放对象
  32.     If Err.Number = 0 Then
  33.         MsgBox "成功发送邮件", , "温馨提示"    '如果没有出错,则提示发送成功
  34.     Else
  35.         MsgBox Err.Description, vbInformation, "邮件发送失败"    '如果出错,则提示错误类型和错误代码
  36.     End If
  37.     'ThisWorkbook.ChangeFileAccess Mode:=xlReadWrite    '将工作簿设置为读写模式
  38.     Application.DisplayAlerts = True    '恢复系统提示
  39. End Sub
复制代码
重新整理下,测式没问题了,你只要把发信人都换成你的邮箱,收信人改下,再填上密码就可以了。

点评

厉害 厉害  发表于 2013-9-16 08:55

评分

参与人数 1 +3 收起 理由
france723 + 3 我和小伙伴都惊呆了

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2013-9-16 08:46 | 显示全部楼层
谢谢各位了!刚才试了一下,.Item(stUl & "sendusername")= 参数写用户名或邮箱地址都可以的。
比如"123456888@qq.com"与"123456888"都可以。原以为只能用用户名呢!
回复

使用道具 举报

发表于 2014-7-2 08:57 | 显示全部楼层
hwc2ycy 发表于 2013-9-15 14:56
重新整理下,测式没问题了,你只要把发信人都换成你的邮箱,收信人改下,再填上密码就可以了。

如果发送邮件完毕的话,自动保存附件,该怎么添加呢
回复

使用道具 举报

发表于 2014-7-2 09:04 | 显示全部楼层
如果邮件发送完毕,自动把附件保存在指定位置,该怎么写啊,请大神指教
回复

使用道具 举报

发表于 2016-3-3 19:24 | 显示全部楼层
zjdh 发表于 2013-9-15 14:21
我刚才用你的宏发了几个邮件,全都成功啦!

无标题.png
QQ截图20160303191510.jpg
我用上面的代码发邮件,但是出现这样的提示。
什么原因呢?求大神解释
回复

使用道具 举报

发表于 2016-3-3 19:26 | 显示全部楼层
hwc2ycy 发表于 2013-9-15 14:56
重新整理下,测式没问题了,你只要把发信人都换成你的邮箱,收信人改下,再填上密码就可以了。

大神,我发邮件的时候,出现下面的错误对话框:
无标题.png
SMTP已经设置了:
QQ截图20160303191510.jpg
这是什么原因呢?
回复

使用道具 举报

发表于 2016-4-14 16:49 | 显示全部楼层
hwc2ycy 发表于 2013-9-15 14:56
重新整理下,测式没问题了,你只要把发信人都换成你的邮箱,收信人改下,再填上密码就可以了。

老师请教:如果是批量发送,代码怎么改?发送主题、内容一致,收件人在sheet1中B列存放着。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-30 01:15 , Processed in 0.475155 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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