VBA使用Outlook自动发送邮件

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

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

利用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 = Nothing

End 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 = Nothing

End 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 = Nothing

End 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 = Nothing

End 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 = Nothing

End Sub

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

  • 16
    点赞
  • 118
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
### 回答1: 以下是使用 VBA 在 Foxmail 中自动发送邮件的示例代码: ```vba Sub SendEmail() Dim objMail As Object Set objMail = CreateObject("Foxmail.Application") objMail.NewMail '创建一封新邮件 objMail.To = "recipient@example.com" '设置收件人邮箱地址 objMail.Subject = "Test Email" '设置邮件主题 objMail.Body = "This is a test email." '设置邮件正文 objMail.Send '发送邮件 Set objMail = Nothing End Sub ``` 请注意,此代码仅适用于已安装 Foxmail 的 Windows 系统。在使用此代码之前,请确保已将 VBA 引用添加到您的项目中。 ### 回答2: 如下是使用VBA编写的实现Foxmail自动发邮件的代码: 首先,在代码模块中引入Microsoft Outlook和Fox Tool的库文件。 ```vba Dim OutApp As Object Dim OutMail As Object Dim olMailItem As Object Sub FoxmailAutoSend() Dim wb As Workbook Dim ws As Worksheet Dim rng As Range Dim recipient As String Dim subject As String Dim body As String Dim attachURL As String ' 设置收件人、主题、正文内容以及附件路径 recipient = "example@example.com" subject = "这是一封自动发送的邮件" body = "这是邮件的正文内容" attachURL = "C:\Example\File.pdf" ' 创建Outlook应用程序对象 Set OutApp = CreateObject("Outlook.Application") ' 创建邮件对象 Set OutMail = OutApp.CreateItem(olMailItem) ' 设置邮件收件人、主题以及正文内容 With OutMail .To = recipient .Subject = subject .Body = body ' 添加附件 .Attachments.Add attachURL ' 发送邮件 .Send End With ' 释放资源 Set OutMail = Nothing Set OutApp = Nothing End Sub ``` 在上述代码中,需要根据实际需求设置收件人、主题、正文内容以及附件路径。然后将以上代码复制到VBA编辑器中,保存并运行该宏即可自动发送邮件。 以上是一个基本的使用VBA实现Foxmail自动发邮件的代码。可以根据实际需求进行修改和扩展,例如可以使用循环和条件语句批量发送邮件,或者根据单元格数据自动填写邮件内容等。 ### 回答3: 使用VBA编写Foxmail自动发邮件的代码可以通过以下步骤实现: 1. 首先,需要打开VBA编辑器。在Foxmail中,点击“工具”菜单,选择“宏”下的“编辑宏”,就可以打开VBA编辑器。 2. 在VBA编辑器中,创建一个新的模块。在左侧的“项目资源管理器”窗口中,右键点击“模块”,选择“插入”-“模块”,创建一个新的模块。 3. 在新的模块中,编写VBA代码实现自动发邮件的功能。代码可以按照以下步骤进行: (1) 首先,声明一个Outlook应用程序对象和MailItem对象。代码如下: Dim OutlookApp As Object Dim MailItem As Object (2) 然后,创建一个Outlook应用程序对象并赋值给OutlookApp变量。代码如下: Set OutlookApp = CreateObject("Outlook.Application") (3) 接下来,创建一个MailItem对象并赋值给MailItem变量。代码如下: Set MailItem = OutlookApp.CreateItem(0) (4) 设置邮件的收件人、主题和正文内容。代码如下: MailItem.To = "收件人邮箱地址" MailItem.Subject = "邮件主题" MailItem.Body = "邮件正文内容" (5) 最后,调用MailItem对象的Send方法发送邮件。代码如下: MailItem.Send 4. 编写完VBA代码后,点击VBA编辑器的“文件”菜单,选择“保存”以保存代码。 5. 在Foxmail中,点击“工具”菜单,选择“宏”下的“执行宏”,选择保存了VBA代码的模块,点击“运行”按钮,就可以执行自动发邮件的代码了。 以上是一个简单的使用VBA实现Foxmail自动发邮件的代码,可以根据实际需求进行调整和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值