跳到主要内容

如何在Outlook中发送计划定期电子邮件?

在Microsoft Outlook中,您可以轻松地向其他人发送日程安排重复约会,会议或任务。 但是,如果您只想发送定期重复的电子邮件而没有任何约会,会议或任务,该怎么办? 不幸的是,Outlook没有提供发送定期重复电子邮件的功能,但是在我们的教程中,我们将向您展示如何在Outlook中发送定期重复电子邮件。

使用VBA代码在Outlook中发送定期计划电子邮件

使用出色的工具在 Outlook 中轻松发送定期重复的电子邮件


使用VBA代码在Outlook中发送定期计划电子邮件

本教程分为四个部分,完成这些部分后,您将成功发送计划重复执行的电子邮件。 请执行以下操作。

第 1 部分:创建新约会

1.请浏览至 日历 点击查看 日历 ,在 导航窗格,然后通过单击创建新约会 新任命首页 标签。

3.在 预约咨询 对话框下 预约咨询 标签。 你需要:

答:输入 联系原因 B:在“收件人”中输入收件人的电子邮件地址 地理位置
C:配置 开始时间结束时间 D:在下方选择提醒 提醒 下拉列表。
如果您选择15分钟,则表示它将在发送电子邮件的15分钟前提醒您。
E:撰写您的约会内容。

备注:本 预约主题 将成为重复出现的电子邮件主题; 和 预约机构 收件人收到电子邮件后,它将成为重复出现的电子邮件正文。

第 2 部分:创建新类别

现在,您需要创建一个名为“发送计划定期电子邮件“ 如下:

1.在 预约咨询 对话框,请点击 分类 > 所有分类 ,在 标签 组下 预约咨询 标签。

2。 当。。。的时候 颜色分类 弹出对话框,请点击 全新 按钮。 在里面 添加新类别 对话框中,输入“发送计划定期电子邮件“ 在里面 名字 领域; 然后在 颜色 下拉列表。 然后点击 OK.

3.然后您将看到“发送计划定期电子邮件”类别已列出,请选中该框,然后单击 OK 按钮。

第 3 部分:设置重复

现在,该设置约会的重复时间了。

1。 点击 循环 ,在 附加选项 组下 预约咨询 标签。 看截图:

2.在 预约定期 对话框中,配置您的 循环 模式。 如果您需要结束时间,请在下面进行配置 复发范围。 然后点击 OK.

3.返回到 预约咨询 对话框,请点击 保存并关闭 按钮。 看截图:

第 4 部分:使用 VBA 代码发送计划定期电子邮件

1.请按 其他 + F11 打开 Microsoft Visual Basic应用程序 对话。

2.双击 Project1 > Microsoft Outlook对象 > 本次展望会议 在左窗格中。 看截图:

3.将以下VBA代码复制并粘贴到VBA编辑器中。 然后点击 保存 按钮。

VBA:发送计划定期电子邮件

Private Sub Application_Reminder(ByVal Item As Object)
'Updated by Extendoffice 20200522
Dim xMailItem As MailItem
Dim xItemDoc As Word.Document
Dim xNewDoc As Word.Document
Dim xFldPath As String
On Error Resume Next
If Item.Class <> OlObjectClass.olAppointment Then Exit Sub
If Item.Categories <> "Send Schedule Recurring Email" Then Exit Sub
Set xMailItem = Outlook.Application.CreateItem(olMailItem)
Set xItemDoc = Item.GetInspector.WordEditor
xFldPath = CStr(Environ("USERPROFILE"))
xFldPath = xFldPath & "\MyReminder"
If Dir(xFldPath, vbDirectory) = "" Then
    MkDir xFldPath
End If
xFldPath = xFldPath & "\AppointmentBody.xml"
xItemDoc.SaveAs2 xFldPath, wdFormatXMLDocument ' wdFormatXML
Set xNewDoc = xMailItem.GetInspector.WordEditor
VBA.DoEvents
xNewDoc.Application.Selection.HomeKey
xNewDoc.Activate
xNewDoc.Application.Selection.InsertFile FileName:=xFldPath, Attachment:=False
With xMailItem
    .To = Item.Location
    .Recipients.ResolveAll
    .Subject = Item.Subject
    .Send
End With
Set xMailItem = Nothing
VBA.Kill xFldPath
End Sub

4。 点击 工具 > 参考资料 打开 参考资料 -项目 对话。 在对话框中,检查 Microsoft Word对象库 选项,然后单击 OK 按钮。

5。 按 其他 + Q 按键同时关闭 Microsoft Visual Basic应用程序 窗口。

当。。。的时候 提醒 弹出后,电子邮件将自动发送给您在第一部分的“位置”字段中键入的收件人。 然后点击 解除此信息 ,在 提醒 对话。 并且电子邮件将在这段时间内每天重复发送。 看截图:

备注:VBA代码已在Outlook 2010和更高版本中成功测试。


使用出色的工具在 Outlook 中轻松发送定期重复的电子邮件

对于很多Outlook用户来说,上述方法过于繁琐,无法正确处理。 这里强烈推荐 安排自动发送 的特点 Kutools for Outlook. 使用此功能,您可以轻松创建多封重复电子邮件,并根据需要安排这些电子邮件每天、每周、每月或每年定期发送。 请按以下步骤完成。

在MyCAD中点击 软件更新 下载 Outlook 的 Kutools 尝试一下。

1。 点击 库工具 > 安排自动发送 > 创建自动发送计划.

2.然后一个消息窗口正在打开,您需要:

2.1) 在 收件人,抄送 or 密件抄送 根据需要填写字段,然后填写电子邮件 主题;
2.2) 撰写邮件正文;
2.3)点击 循环 在下面 Kutools 经常性 标签。 看截图:

3.现在 电子邮件重复 弹出对话框,需要指定 重复时间, 重复模式复发范围 对于电子邮件,然后单击 OK 按钮。

4. 现在它返回到消息窗口,单击 保存并关闭 按钮保存重复设置并关闭窗口。

提示: 您可以根据需要重复上述步骤 1 到 4 以创建多个定期电子邮件。

5. 现在通过单击打开该功能 库工具 > 安排自动发送 > 启用。

6.在开幕 Kutools for Outlook 对话框,单击 确定。

完成上述设置后,当到达指定的日期和时间时,将自动发送重复邮件。

请注意: 您可以按如下方式轻松管理重复发送的电子邮件。

1。 点击 库工具 > 安排自动发送 > 管理自动发送计划.

2.在 管理自动发送计划 窗口,您可以创建 重复的电子邮件, 编辑、删除、 打开 or 折扣 您需要的现有定期电子邮件。 或者您可以点击 历史记录 图标以查看重复电子邮件的发送历史记录。

单击以了解有关此功能的更多信息.

  Kutools for Outlook 包括适用于Microsoft Outlook的100多种强大功能。 60天免费试用,不受限制。 立即下载!


最佳办公生产力工具

Kutools for Outlook - 超过 100 种强大功能可增强您的 Outlook

📧 电子邮件自动化: 外出(适用于 POP 和 IMAP)  /  安排发送电子邮件  /  发送电子邮件时按规则自动抄送/密件抄送  /  自动转发(高级规则)   /  自动添加问候语   /  自动将多收件人电子邮件拆分为单独的消息 ...

📨 电子邮件管理: 轻松回忆电子邮件  /  按主题和其他人阻止诈骗电子邮件  /  删除重复的电子邮件  /  高级搜索  /  合并文件夹 ...

📁 附件专业版批量保存  /  批量分离  /  批量压缩  /  自动保存   /  自动分离  /  自动压缩 ...

🌟 界面魔法: 😊更多又漂亮又酷的表情符号   /  使用选项卡式视图提高 Outlook 工作效率  /  最小化 Outlook 而不是关闭 ...

👍 一键奇迹: 使用传入附件回复全部  /   反网络钓鱼电子邮件  /  🕘显示发件人的时区 ...

👩🏼‍🤝‍👩🏻 通讯录和日历: 从选定的电子邮件中批量添加联系人  /  将联系人组拆分为各个组  /  删除生日提醒 ...

超过 100特点 等待您的探索! 单击此处了解更多。

了解更多       免费下载      购买
 

 

Comments (171)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Bonjour,
J'utilise outlook depuis peu, et j'ai découvert cette manipulation pour envoyer un mail récurrent. Cela a très bien fonctionné la première fois, mais je ne comprends pas, ça ne fonctionne plus. Cela a peut-être de l'importance, mais comme je travaille sur 2 ordinateurs différents, le code VBA a aussi été intégré sur ma deuxième session outlook. Auriez-vous une explication je vous prie ?
Merci d'avance
This comment was minimized by the moderator on the site
Hi Pink,
Which Outlook version are you using? Is there a reminder dialog box popping up afterwards?
This comment was minimized by the moderator on the site
This feature does not work for me no matter what I do and from the above thread, it doesn't look like they are attempting to fix it much less address it--I don't see any responses from the developer.

It's too bad because everything else with this product works very well.
This comment was minimized by the moderator on the site
Hi Rhonda Corn,
Can you provide the emails under the following folder path?
You can compress it and send it to
C:\Users\User Name\AppData\Roaming\ExtendOffice\OutlookKutools\KTORecurringEmail
This comment was minimized by the moderator on the site
How do I get this to run 2 different scheduled emails?
This comment was minimized by the moderator on the site
Hi, 
When I put recipients names into "location" it changes "appointment" to "meeting" invite, is this working as intended? It doesn't allow me to "save and close", but rather "send" the invite now which is not what I want to do.
This comment was minimized by the moderator on the site
Hi,Appointments are not changed to meetings when entering content into the Location field. 
This comment was minimized by the moderator on the site
I scheduled the reoccurring email however instead of sending email on the 30th it sent it today. I checked the settings and is set to send email on 30th at 10 am. Instead it sent the email on the 17th at 5:45 PM
This comment was minimized by the moderator on the site
Hi Leah,Sorry for the trouble, the problem you described cannot be reproduced. Here suggest using the relevant function of KTO to send a schedule recurring email.
This comment was minimized by the moderator on the site
I’m trying to set up a recurring email to be sent. However, it’s not working for some reason. It acts like it’s trying, but I get this error message:
This comment was minimized by the moderator on the site
Hi,You need to enable the Microsoft Word Object Library mentioned in step 4 of the post to avoid this error.
This comment was minimized by the moderator on the site
It is enabled
This comment was minimized by the moderator on the site
It is enabled already
This comment was minimized by the moderator on the site
I had the same problem.  I had a look in the available references list and found a second Microsoft Word 16.0 Object Library that was not enabled. Once I enabled that one, it solved the problem for me!
This comment was minimized by the moderator on the site
Hello, 
Several errors to easily solve if the mail stays in "draft" : 
-> Add .Save juste before .Send
-> Don't close everything too fast or the script wouldn't have the time to send the mail that it has been cleaned... so find a way to delay those 2 rows 
Set xMailItem = Nothing
VBA.Kill xFldPath
Maybe with a thread sleep/wait ? Is the killing mandatory ? wouldn't this be killed when outlook is closed ? For my usecase, it was ok to remove them
This comment was minimized by the moderator on the site
I followed the instruction in this article "How to send a schedule recurring email in Outlook" multiple times, to no avail. I get the popup reminder box but, the e-mail is never sent. I've tried with Kutools for Outlook installed and uninstalled. Still no success in sending a scheduled recurring email in Outlook.

Thanx,
RLB
This comment was minimized by the moderator on the site
I have had the same situation. It was working fine for almost a year and then suddenly stopped working. I've tried recopying the code, delete it completely and start over. Same results- popup reminder box happens, I click ok, and the email is never sent.
This comment was minimized by the moderator on the site
Hi tarnold,Make sure that the category name you created in step 2 is the same as the name specified in the code.
Can you try the VBA below and give me feedback on error you encountered later? Because this problem needs to be reproduced in my case. Or you can also try the third party tool mentioned in the post. Sorry for the inconvenience.

<div data-tag="code">Private Sub Application_Reminder(ByVal Item As Object)
'Updated by Extendoffice 20220114
Dim xMailItem As MailItem
Dim xItemDoc As Word.Document
Dim xNewDoc As Word.Document
Dim xFldPath As String
If Item.Class <> OlObjectClass.olAppointment Then Exit Sub
If Item.Categories <> "Send Schedule Recurring Email" Then Exit Sub
Set xMailItem = Outlook.Application.CreateItem(olMailItem)
Set xItemDoc = Item.GetInspector.WordEditor
xFldPath = CStr(Environ("USERPROFILE"))
xFldPath = xFldPath & "\MyReminder"
If Dir(xFldPath, vbDirectory) = "" Then
MkDir xFldPath
End If
xFldPath = xFldPath & "\AppointmentBody.xml"
xItemDoc.SaveAs2 xFldPath, wdFormatXMLDocument ' wdFormatXML
Set xNewDoc = xMailItem.GetInspector.WordEditor
VBA.DoEvents
xNewDoc.Application.Selection.HomeKey
xNewDoc.Activate
xNewDoc.Application.Selection.InsertFile FileName:=xFldPath, Attachment:=False
With xMailItem
.To = Item.Location
.Recipients.ResolveAll
.Subject = Item.Subject
.Send
End With
Set xMailItem = Nothing
VBA.Kill xFldPath
End Sub
This comment was minimized by the moderator on the site
Crystal,
Sorry for the delay.  I copied your script into VBA.  My category is "Recurring Email", so I made it match in your script.  I set up a recurring email to test it.  The reminder window pops up at the correct time.  I waited a couple of minutes and then clicked 'dismiss'.  The window closes.  No errors.  No email sent.
This comment was minimized by the moderator on the site
Hi Crystal, when using the code above I have this error: 
Erreur de compilation: Type défini par l'utilisateur non défini
it's concerning this lineDim xItemDoc As Word.Document

any ideas?
This comment was minimized by the moderator on the site
Hi Marie-Eve Noel,You need to enable the Microsoft Word Object Library mentioned in step 4 of the post to avoid this error.
This comment was minimized by the moderator on the site
At least yours work for a while. Mine never worked. Contacted Support and was told to post here. I suppose we'll have to wait on the author to respond.
This comment was minimized by the moderator on the site
Hi RodmanB,
Can neither of the two methods described in the article solve the problem?
VBA code and Kutools for Outlook are two different ways to handle the task.I need to know more specific about your issue, such as your Excel version.
This comment was minimized by the moderator on the site
Hi Crystal,
I am using MSOffice 365 for all of the Office products- Outlook, Excel, etc. As I posted 6month ago, it was working fine with my previous MSOffice desktop software.  When I switched to Office 365, it stopped working and I am having the same/similar situation as RodmanB.  The reminder popup occurs, I dismiss it and nothing happens.  The email is not in the draft folder, not in the sent folder, nothing.
This comment was minimized by the moderator on the site
Crystal,   Thanks for help. I replaced the VBCode and made a different test email. It preformed just as the other; reminder pops up, .wav file plays but the email is not sent. I'll install Kutools for Outlook and try that way tomorrow and, will respond with results.
This comment was minimized by the moderator on the site
Crystal,   Unable to install Kutool for outlook, demo license expired. Not willing to buy  just to debug this feature. So, have a great day and thanks for the help.
Thanx,RLB
This comment was minimized by the moderator on the site
Hi have implemented this and there's a couple of issues.1 - if i don't have Outlook opened, the email is not sent --> i guess this is normal, not a big deal anyway.2 - even the appointment appears just once a day and the email sent properly then, i see that the email is sent randomly other extra times during the day. For example, my schedule is daily at 9:00 and this is sent at 9:00 (OK) and also at 17:13 (NOK). I am not being able to identify why, any idea?
thanks.
This comment was minimized by the moderator on the site
What would the VBA code be for this but sending from the recipients of the appointment, not the "location" of the appointment as coded above? I need to send to 20+ people and cannot add enough names as the location fields is limited on characters. Many thanks
This comment was minimized by the moderator on the site
Hi J,You can try the second method "the Schedule auto send feature of Kutools for Outlook" mentioned in the post.
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations