↓↓↓欢迎关注我的公众号,在这里有数据相关技术经验的优质原创文章↓↓↓

基础版本–能自动发送就是成功

利用VBA使用Outlook自动发送邮件,代码及注释如下:

Sub send_mail()Dim ObjOL As Object
Dim itmNewMail As Outlook.MailItem
Dim mailaddress As String
'引用Microsoft Outlook 对象
Set ObjOL = CreateObject("Outlook.Application")
Set itmNewMail = ObjOL.CreateItem(olMailItem)'******输入参数,多个收件人,抄送人用分号间隔
With itmNewMail.Subject = "测试邮件"    '主旨.body = "这是一封测试邮件"   '正文本文.To = "12345@qq.com"  '收件者' .CC=CC '抄送邮件地址' .BCC = BCC mail.Bcc='12345678@qq.com'.Attachments.Add "C:\测试.xlsx"   '插入附件.Importance = 2 '设置重要性为高.Display  '启动Outlook发送窗口.send '发送
End With
Set ObjOL = Nothing
Set itmNewMail = NothingEnd Sub

如果运行过程中报错
“用户定义类型未定义(User-defined type not defined)”,则需要添加对应的插件:
点击Tools-> References,选中下面两个插件:
Microsoft Excel [版本号] Object Library
Microsoft Outlook [版本号] Object Library

添加多个附件

如果需要添加多个附件,则直接使用多次的 .Attachments.Add即可

Sub send_mail()Dim ObjOL As Object
Dim itmNewMail As Outlook.MailItem
Dim mailaddress As String
'引用Microsoft Outlook 对象
Set ObjOL = CreateObject("Outlook.Application")
Set itmNewMail = ObjOL.CreateItem(olMailItem)'******输入参数,多个收件人,抄送人用分号间隔
With itmNewMail.Subject = "测试邮件"    '主旨.body = "这是一封测试邮件"   '正文本文.To = "12345@qq.com"  '收件者.Attachments.Add "C:\测试.xlsx"   '插入附件1.Attachments.Add "C:\测文件.docx"    '插入附件2.Display  '启动Outlook发送窗口.send '发送
End With
Set ObjOL = Nothing
Set itmNewMail = NothingEnd Sub

选择发送邮箱/账号

自动发送默认使用outlook中的默认邮箱,但是我们的outlook邮箱可能除了我们自己的邮箱账号外还有其他的账号,例如公共邮箱。那我们如何使用其他的账号自动发送邮件呢?只要设定一下SendUsingAccount属性即可:

Sub send_mail()Dim ObjOL As Object
Dim itmNewMail As Outlook.MailItem
Dim mailaddress As String
'引用Microsoft Outlook 对象
Set ObjOL = CreateObject("Outlook.Application")
Set itmNewMail = ObjOL.CreateItem(olMailItem)'******输入参数,多个收件人,抄送人用分号间隔
With itmNewMail.Subject = "测试邮件"    '主旨.body = "这是一封测试邮件"   '正文本文.To = "12345@qq.com"  '收件者.SendUsingAccount = ObjOL.Session.Accounts.Item(2) '选择发送邮箱.Importance = 2 '设置重要性为高.Display  '启动Outlook发送窗口.send '发送
End With
Set ObjOL = Nothing
Set itmNewMail = NothingEnd Sub

语句 .SendUsingAccount = ObjOL.Session.Accounts.Item(2)中的Item(2)中的数字是根据实际邮箱账号的数量和顺序来的,确定的方法可以在debug时找到itmNewMail对象的.SendUsingAccount 属性确认,或者直接从1开始慢慢试吧!

修改正文格式

如果需要修改正文中的字体,则需要使用HTML格式调整,代码示例如下:

Sub send_mail_html()Dim ObjOL As Object
Dim itmNewMail As Outlook.MailItem
Dim mailaddress As String
'引用Microsoft Outlook 对象
Set ObjOL = CreateObject("Outlook.Application")
Set itmNewMail = ObjOL.CreateItem(olMailItem)'******输入参数,多个收件人,抄送人用分号间隔
With itmNewMail.Subject = "测试邮件"  '主旨'正文本文.HTMLBody = "<H2>致尊敬的收件人</H2><BR>" & _"<FONT SIZE=4>请注意<BR>" & _"这是一封<Font Face=Times Roman Size=4.5 Color=blue>测试邮件</font>并且<Font Face=Times Roman Size=4.5 Color=red>没有附件</font>。<BR>"  .To = "12345@qq.com"  '收件者.Display  '启动Outlook发送窗口.Send
End With
Set ObjOL = Nothing
Set itmNewMail = NothingEnd Sub

其中正文中的HTML标签含义如下:

<H2>   </H2>标签: 在Html语句中<h1> - <h6> 标签可定义标题。<h1> 定义最大的标题。<h6> 定义最小的标题。
<br> 标签:插入一个换行符
<font>标签: 规定文本的字体、字体尺寸、字体颜色。例如示例中的<Font Face=Times Roman Size=4.5 Color=blue>

其他格式,例如加粗,斜体等都可以使用特定的HTML标签实现,具体百度即可。

插入图片

如果需要在正文中插入图片的话则需要先插入图片附件,然后利用HTML将图片插入到正文中

Sub send_mail_html()Dim ObjOL As Object
Dim itmNewMail As Outlook.MailItem
Dim mailaddress As String
'引用Microsoft Outlook 对象
Set ObjOL = CreateObject("Outlook.Application")
Set itmNewMail = ObjOL.CreateItem(olMailItem)'******输入参数
With itmNewMail.Subject = "测试邮件"  '主旨.Attachments.Add "C:\Users\test.jpg"  '添加图片附件'正文本文,插入图片.HTMLBody = "<H2>致尊敬的收件人</H2><BR>" & _"<FONT SIZE=4>请看如下图片<BR>" & _"<img src='cid:test.jpg' height=432 width=864>".To = "12345@qq.com"  '收件者.Display  '启动Outlook发送窗口.Send
End With
Set ObjOL = Nothing
Set itmNewMail = NothingEnd Sub

代码中的主要是<img src='cid:test.jpg' height=432 width=864>
这一句,用于显示图片和调整大小,其中cid:后的字符串一定要保持和图片附件的名称一致

VBA使用Outlook自动发送邮件相关推荐

  1. 利用Python调用outlook自动发送邮件

    ↓↓↓欢迎关注我的公众号,在这里有数据相关技术经验的优质原创文章↓↓↓ 使用Python发送邮件有两种方式,一种是使用smtp调用邮箱的smtp服务器,另一种是直接调用程序直接发送邮件.而在outlo ...

  2. UFT开发实例:QTP调用OutLook自动发送邮件

    2019独角兽企业重金招聘Python工程师标准>>> 1.核心代码 Dim objOutlook Dim objOutMsg Dim olMailItem'Create the O ...

  3. Excel VBA开发自动发送邮件

    一..设置Outlook邮箱帐(略不是本文章的重点) 二..设置Outlook信任中心如下步骤 若没有做如下操作设置,则Excel VBA调用Outlook自动发送邮件时提示如下 2.1 Outloo ...

  4. 使用Excel和OutLook实现自动发送邮件

    参考我的资源: https://download.csdn.net/download/paul50060049/11805973 问题的产生 我们在平时工作中可能会遇到要批量发送邮件的工作,例如财务部 ...

  5. 2021-01-3 VBA利用企业邮箱自动发送邮件

    VBA利用企业邮箱自动发送邮件 1.应用场景 2.VBA生成PDF附件 3.企业邮箱设置发送账户 4.VBA利用企业邮箱发送邮件 利用Windows任务计划设置定时执行 小结 1.应用场景 所在企业提 ...

  6. Outlook中将发送邮件自动CC给自己

    Outlook中将发送邮件自动CC给自己或指定邮箱 在日常生活中,我们经常要将发送的邮件CC给自己一份,以便检查和后续的追加回复,在Microsoft Office Outlook中可以直接通过创建新 ...

  7. 高效办公,如何利用Python自动发送邮件

    自动发送邮件 我们把报表做出来以后一般都是需要发给别人查看,对于一些每天需要发的报表或者是需要一次发送多份的报表,这个时候可以考虑借助Python来自动发送邮件. 使用邮箱的第一步 一般我们在使用QQ ...

  8. python自动发送邮件实现

    目录 1 前言 2 准备工作 2.1 电子邮件的基础知识. 2.2 python邮件库 2.3 邮箱设置 3 python实现邮件自动发送 3.1 SMTP()和send()方法介绍 3.2 pyth ...

  9. ASP.NET MVC模式下使用fluentscheduler+stmp定时自动发送邮件

    STMP发送邮件 首先说STMP自动发送邮件 在解决方案下新建一个类,我命名为EmailHelper(但是怎么命名无所谓啦) using System; using System.IO; using ...

最新文章

  1. PMP考试错题记录(2)
  2. 在温暖的南方惠州①月了。。
  3. 电路原理邱关源_看高手是如何学习电路原理的,有哪些捷径?
  4. IPhoneX网页布局简介
  5. Hadoop系统架构
  6. 中国石油计算机第二次在线作业,中国石油大学(北京)计算机应用基础第二次在线作业1教程.docx...
  7. 收藏的RabbitMQ资料,分享给大家
  8. 设计模式C++实现 —— 策略模式
  9. Netty工作笔记0035---Reactor模式图剖析
  10. Linux中shell编程的for循环用法
  11. 冒泡排序 c语言,冒泡排序(C语言)
  12. Perforce-Server迁移
  13. C++ 如何释放std::function中绑定的对象
  14. Python——类的实例
  15. 淘宝京东鞋服板砖线报,秒杀抢购捡漏,兔子仙女宝妈童话镇等之后的寄件价格问题,这个可以帮你sheng下好多快递q,【云杰智慧邀请码:HJDNA5】
  16. gtx1050ti最稳定的驱动_笔记本1050ti显卡安装最新驱动版本 (415.27) 记录 NVIDIA显卡GeForce系列...
  17. Windows11硬盘读写速度变慢的解决方法
  18. 条件概率公式图解推导
  19. 关键链方法的多项目监控技术
  20. u盘无响应+开启什么服务器,服务没有及时响应启动或控制请求怎么办?如何解决系统服务没有及时响应启动...

热门文章

  1. iOS基于chroot的内核级绕过App的越狱检测
  2. Excel多行内容合并一行且保留回车
  3. dota2模型导入到3dsmax(转)
  4. oak深度相机入门教程-疲劳状态检测
  5. 树莓派基于分类器的识别环保标志(三)分类器xml创建
  6. C语言简单的编程技术(代码优化)
  7. niosII的那些事--基于AVALON总线的IP核定制
  8. 《乱音盒子》之《鸢尾的思念》
  9. Hugging(transformers)读取自定义 checkpoint、使用 Trainer 进行测试回归任务
  10. CSDN的APP有毒吗?我能不能举报?