ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: weiyingde

[已解决] win7旗舰版下:VBA代码无法发送QQ邮件(附件),折腾我几天未决,大侠救我

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-2-28 12:37 | 显示全部楼层
zhangzhang21 发表于 2018-2-28 12:33
我也有这个需求,不过我是通过调用outlook完成的,相对简单一些

提醒一下楼主,在我的使用中,第一次直 ...

谢谢关注……
请教一下,能否让我欣赏一下你的实例代码?
期待答复……

TA的精华主题

TA的得分主题

发表于 2018-2-28 12:45 | 显示全部楼层
weiyingde 发表于 2018-2-28 12:37
谢谢关注……
请教一下,能否让我欣赏一下你的实例代码?
期待答复……

我的版本是office 365,win7平台。
公司同事在win10上也可以运行

  1. Sub Send_Mails()
  2.     Application.ScreenUpdating = False
  3.     Application.DisplayAlerts = False
  4.     Dim subject As String
  5.     Dim i As Integer
  6.     Dim l As Integer
  7.     Dim wst As Worksheet
  8.     Dim myitem
  9.     Dim y As Long
  10.     Dim z As String
  11.     Dim mailWord As Object
  12.     Dim wapp As Object
  13.     Dim wb As Object, wb1 As Object
  14.     Dim k As Integer
  15.     Dim j As Integer
  16.     Dim zhengwen_cn, zhengwen_en
  17.     Dim timee
  18.     Dim email_time
  19.     timee = Sheets("Dashboard").Range("k4").Value '邮件发送间隔时间
  20.     Set wst = Worksheets("email_recipients")
  21.     trr = wst.Range("a1").CurrentRegion
  22.     Set myolapp = CreateObject("outlook.application")
  23.     i = wst.Range("j1").End(xlDown).Row
  24.     subject_cn = "" '邮件标题
  25.     zhengwen_cn = "" '邮件正文
  26.     cal = 0
  27.     For l = 2 To i
  28.         Set myitem = myolapp.CreateItem(olMailItem)
  29.         receiver = recipient(trr(l, 4), trr(l, 5), trr(l, 6), trr(l, 7), trr(l, 8), trr(l, 9)) '收件人邮箱
  30.         With myitem
  31.                     .subject = subject_cn '标题
  32.                     .body = zhengwen_cn '正文
  33.                 .To = receiver '收件人
  34.                 .cc = trr(l, 3) & ";" & trr(l, 2) '抄送人
  35.                 .display '显示邮件窗口
  36.                 .Attachments.Add trr(l, 10) '添加附件
  37.                 .send '发送
  38.                 If Sheets("Dashboard").Range("k2").Value = "YES" Then
  39.                     Application.Wait Now + TimeValue(timee) '设置发送邮件的间隔
  40.                 Else
  41.                 End If
  42.                 cal = cal + 1 '发送邮件计数
  43.             End With
  44.         Next l
  45.         Set myolapp = Nothing
  46.         Set myitem = Nothing
  47.         Application.ScreenUpdating = True
  48.         Application.DisplayAlerts = True
  49. End Sub
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2018-2-28 12:52 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-2-28 13:01 来自手机 | 显示全部楼层
zhangzhang21 发表于 2018-2-28 12:45
我的版本是office 365,win7平台。
公司同事在win10上也可以运行

话说,outlook发送中应该有提示的吧?要人工按一下是,自从 玛丽莎爆发以后。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-2-28 13:11 | 显示全部楼层
zpy2 发表于 2018-2-28 13:01
话说,outlook发送中应该有提示的吧?要人工按一下是,自从 玛丽莎爆发以后。

这样太麻烦,不是好的解决方案;最好的是后台解决。
我的解决方案是,写成函数,随意调用,嵌入到其他程序中。

TA的精华主题

TA的得分主题

发表于 2018-2-28 13:15 来自手机 | 显示全部楼层
weiyingde 发表于 2018-2-28 13:11
这样太麻烦,不是好的解决方案;最好的是后台解决。
我的解决方案是,写成函数,随意调用,嵌入到其他程 ...

嗯,不错,加油!

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-2-28 13:15 | 显示全部楼层
zhangzhang21 发表于 2018-2-28 12:45
我的版本是office 365,win7平台。
公司同事在win10上也可以运行

你是用outlook发送的,莫不是要另装outlook软件吗?
我的电脑上已经安装了58个大大小小的软件,win7运行慢的要死;
我不想在安装outlook了。
但这个思路和实例倒是很好的。
谢谢你的答复和精彩案例。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-2-28 13:38 | 显示全部楼层
本帖最后由 weiyingde 于 2018-2-28 14:27 编辑
小花鹿 发表于 2018-2-28 10:29
听别人说最好用JMAIL,但我试验的结果是163可以,QQ不行
如果涉及到很复杂的设置,我觉得没有研究的必要 ...

1、http://club.excelhome.net/thread-647892-1-1.html;看到楼主的讲解,并在第四楼给出了实例,是行的通的;
2、http://club.excelhome.net/thread-439061-2-1.html,也是说可以,但在8楼中,别人说没有成功;
3、http://club.excelhome.net/thread-566650-1-1.html,wudixin96在第七楼提供的案例,
    应该是有可信度,因为wudixin96身份是EH培训中心教管员,但他的案例代码,我做变通后,
    提示发送成功,然而,人家并没有收到信息,这说明提示是谎报。如果wudixin说的真的,那说明Jmail
    通过stmp端口发送邮件是可行的。确实,我测试的结果提示,也没有问题,为什么没有预期效果?
    更为奇怪的是,当我以任意密码测试,提示结果也都是成功的——这就不得不使我对代码的可靠性产生怀
   疑。你若有功夫和兴趣进行尝试和测试,请将结果告诉与我,将感激不尽。
   谢谢你关注和提醒。

TA的精华主题

TA的得分主题

发表于 2018-2-28 14:07 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
zpy2 发表于 2018-2-28 13:01
话说,outlook发送中应该有提示的吧?要人工按一下是,自从 玛丽莎爆发以后。

不需要啊,有个什么安全性的调最低就行了

TA的精华主题

TA的得分主题

发表于 2018-2-28 14:13 | 显示全部楼层
weiyingde 发表于 2018-2-28 13:15
你是用outlook发送的,莫不是要另装outlook软件吗?
我的电脑上已经安装了58个大大小小的软件,win7运行 ...

是的,必须要装outlook

升级下硬件吧

公司专门给我另外配了台电脑来运行VBA
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-6-6 09:47 , Processed in 0.035679 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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