Note: The other languages of the website are Google-translated. Back to English

如何在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中点击 软件更新 下载 Kutools for Outlook 尝试一下。

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-为Outlook带来100个高级功能,并使工作更加轻松!

  • 自动CC / BCC 根据规则发送电子邮件; 自动转发 自定义多封电子邮件; 自动回复 没有交换服务器,还有更多自动功能...
  • BCC警告 -当您尝试全部答复时显示消息 如果您的邮件地址在“密件抄送”列表中; 缺少附件时提醒,还有更多提醒功能...
  • 在邮件对话中回复(全部)带有所有附件; 回复许多电子邮件 很快; 自动添加问候语 回复时将日期添加到主题中...
  • 附件工具:管理所有邮件中的所有附件, 自动分离, 全部压缩,全部重命名,全部保存...快速报告, 计算选定的邮件...
  • 强大的垃圾邮件 习俗 删除重复的邮件和联系人... 使您能够在Outlook中做得更聪明,更快和更好。
拍摄kutools前景kutools选项卡1180x121
拍摄kutools前景kutools加标签1180x121
 
按评论排序
注释 (167)
还没有评分。 成为第一位评论!
该评论由网站上的主持人最小化
该方法确实有帮助。 它适用于我测试它时创建的第一个约会。 但后来它停止工作了。
潘都让
该评论由网站上的主持人最小化
我遇到了同样的问题,我重复了多次这些步骤,现在它根本不起作用,没有发送电子邮件或任何东西你能解决它吗?
精彩
该评论由网站上的主持人最小化
嗨,我可以按照上述步骤设置定期电子邮件,但是当我在约会正文中创建超链接时,当事件被触发并且我收到邮件中的邮件时,超链接被转换为原始链接。 感谢任何帮助,谢谢。
哈沙夫拉特
该评论由网站上的主持人最小化
谢谢! 这行得通。 有没有办法在发送的电子邮件中包含附件? 我尝试了将附件添加到日历事件的测试,但它没有通过电子邮件发送。
俏皮话
该评论由网站上的主持人最小化
你有没有得到关于如何添加附件的答案? 谢谢!
米歇尔
该评论由网站上的主持人最小化
我把它用于测试电子邮件,但现在它不再做任何事情,我已经删除了所有内容并重复了步骤,还有更多吗? 我也在展望 2013
精彩
该评论由网站上的主持人最小化
我有同样的问题。 这是第一次工作,但重复的约会提醒似乎没有触发电子邮件。 有没有人找到解决这个问题的方法?
糖果
该评论由网站上的主持人最小化
[quote]我得到这个用于测试电子邮件,但现在它不再做任何事情,我已经删除了所有内容并重复了步骤,还有更多吗? 我也在展望 2013由精彩[/quote] 你解决过这个问题吗? 我刚刚进行了设置,并且看到了与您所做的相同的事情。 第一次效果很好,然后什么都没有。
该评论由网站上的主持人最小化
我最终通过在 Outlook 中启用默认情况下关闭的宏来解决这个问题。 我现在唯一的问题是电子邮件中的文本只是纯文本,没有粗体、字体大小或颜色变化等。 有什么方法可以更改上面的代码,以便在电子邮件中包含 RTF 或 HTML 文本?
凯尔
该评论由网站上的主持人最小化
嗨,你解决了吗。 我有同样的问题试过这个,但没有工作。 Sub SetMailFormat_2002_2003_2007_2010(ByRef mail As Object) Dim mailFormat As System.Int32 mailFormat = Convert.ToInt32(mail.GetType().InvokeMember("BodyFormat", _ Reflection.BindingFlags.GetProperty, Nothing, mail, Nothing)) 'OlBodyFormat.olFormatUnspecified = 0 'OlBodyFormat.olFormatPlain = 1 'OlBodyFormat.olFormatHTML = 2 'OlBodyFormat.olFormatRichText = 3 If (mailFormat = 1) Then mailFormat = 2 mail.GetType().InvokeMember("BodyFormat", _ Reflection.BindingFlags.SetProperty, _ Nothing, mail, New Object() {mailFormat}) End Sub Private Sub Application_Reminder(ByVal Item As Object) Dim MItem As MailItem Set MItem = Application.CreateItem(olMailItem) If Item.MessageClass "IPM.Appointment" Then Exit Sub If Item .Categories "发送计划定期电子邮件" 然后退出 Sub MItem.To = Item.Location MItem.Subject = Item.Subject MItem.Body = Item.Body MItem.Send Set MItem = Nothing End Sub
金·布伦伯格
该评论由网站上的主持人最小化
[quote]我最终通过在 Outlook 中启用默认情况下关闭的宏来解决这个问题。 我现在唯一的问题是电子邮件中的文本只是纯文本,没有粗体、字体大小或颜色变化等。 有什么方法可以更改上面的代码,以便在电子邮件中包含 RTF 或 HTML 文本?由凯尔[/quote] 嗨,您找到解决方案了吗? 我需要它:) 金
金·布伦伯格
该评论由网站上的主持人最小化
您也可以考虑使用 Windows 任务计划程序来完成类似的任务。 它易于使用,甚至可以处理附件。
皮特
该评论由网站上的主持人最小化
我尝试了任务,但我没有得到任何东西,因为附件没有进入电子邮件的正文。 请告知您是如何做到的。
以色列
该评论由网站上的主持人最小化
您使用的是哪个代码? 它没有将附件附加到电子邮件中。
以色列
该评论由网站上的主持人最小化
你怎么关掉它?
布布布布布
该评论由网站上的主持人最小化
在我的脑海中,要停止发送重复的电子邮件,您可以: 1. 完全删除约会。 2.更改或删除设置的类别。 3. 将“结束”日期应用于约会重复。
凯尔
该评论由网站上的主持人最小化
您是否需要打开/运行 Outlook 才能发送定期邮件?
Patrick(英国)
该评论由网站上的主持人最小化
此代码是否适用于 Office 365 - Outlook 2013? 我已经按照这些步骤操作了好几次,也启用了宏。 我收到提醒并按下关闭,但电子邮件从未发送。
塔米
该评论由网站上的主持人最小化
嘿,看看这个——我想你一定会喜欢这个功能的。没有更多的每周模板电子邮件
女人
该评论由网站上的主持人最小化
有没有办法发送到联系人中的通讯组列表?
亚伦
该评论由网站上的主持人最小化
是的亚伦,我需要自己做。 我尝试添加一个名为“Spec Group”的通讯组列表(Outlook 联系人组)。 这没有发送。 但是,我将列表名称更改为“Spec@Group”(使其看起来像一个实际的电子邮件地址),并且效果很好。 它必须需要'@'才能被拾取。 幸运的猜测! :哈哈:
凯尔
该评论由网站上的主持人最小化
这运作良好。 现在我需要同一封电子邮件才能发送到多个组。 任何人都可以帮忙吗? Private Sub Application_Reminder(ByVal Item As Object) Dim CF As Folder Set CF = Application.Session.GetDefaultFolder(olFolderContacts) Dim DLI As DistListItem Set DLI = CF.Items("GDL Group 1") Dim MItem As MailItem Set MItem = Application. CreateItem(olMailItem) If Item.MessageClass "IPM.Appointment" Then Exit Sub If Item.Categories "Recurring GDL Recert Email" Then Exit Sub MItem.To = DLI MItem.Subject = Item.Subject MItem.Body = Item.Body MItem。发送 Set MItem = Nothing End Sub
特雷西
该评论由网站上的主持人最小化
制作另一个分发列表,其中包含/指向您已经设置并要包含的其他分发列表。
克里斯塔尔
该评论由网站上的主持人最小化
计算机不在时,是否可以安排在 Outlook 中发送电子邮件。 例如,我想在周日发送一个约会提醒,以便在周一开会,但我周日不上班,那么当我不上班并且我的电脑在离开? 谢谢!
Ashley
该评论由网站上的主持人最小化
按 ALT 和 F11 时没有出现 VBA 代码。 我能够调出 Microsoft Visual Basic for Applications,但没有代码。 你能给些建议么? 谢谢你,拉杰
RD
该评论由网站上的主持人最小化
嗨 Raj,不应该存在 VBA 代码。 如果您按照上面的指南操作,当您双击“ThisOutlookSession”时,它应该是空的。 您必须将指南中显示的代码复制并粘贴到“ThisOutlookSession”窗口中,然后保存。 希望这可以帮助。
KYLE
该评论由网站上的主持人最小化
嗨,当我按照所有步骤并保存并去做另一封电子邮件时 - 上次的代码仍然存在。 代码是否附加到所选类别,因此无需为每封电子邮件添加代码?
邦妮
该评论由网站上的主持人最小化
嗨 Bonnie,VBA 代码只需要添加一次(对于第一封重复的电子邮件)。 如果设置不止一封定期电子邮件,则错过该步骤。
凯尔
该评论由网站上的主持人最小化
我有 Office 2016,我完全按照您的指示尝试了这个。 有效!! 非常感谢。 我确实必须在 Outlook 2016 和 VBA 编辑器中更改我的宏安全设置才能使其正常工作,但是一旦完成,说明就会很容易流动。
威廉
该评论由网站上的主持人最小化
您好,您是如何更改 Outlook 中的宏安全设置的,您将其更改为什么?
艾哈迈德
该评论由网站上的主持人最小化
所以有两件事,一是它没有按照我写的方式显示 IE 没有粗体字符,二是我如何添加签名? 因为它显示为超链接而不是我的常规签名。 谢谢您的帮助。
亚历克斯
该评论由网站上的主持人最小化
Alex Mine 的格式也被去掉了。 我们如何保持它?
特雷西
该评论由网站上的主持人最小化
它发送得很好,但它丢弃了我在电子邮件正文中的所有花哨格式。 我如何让它保持这种格式???
特雷西
该评论由网站上的主持人最小化
我需要知道如何\如果你可以附上一个 excel 速写表?
杜安考珀思韦特
该评论由网站上的主持人最小化
大家好。 这段代码很好用,但我有一个小问题。 我尝试发送的电子邮件属于两个类别:发送消息(宏使用)和 PROGRAMARI RED-TEAM。 当我只添加发送消息类别时,宏工作正常,但只要添加任何其他类别,宏就会停止发送电子邮件。 这是到目前为止的代码。 请帮助:P Private Sub Application_Reminder(ByVal Item As Object) Dim objMsg As MailItem Set objMsg = Application.CreateItem(olMailItem) 'IPM.TaskItem 监视任务提醒 If Item.MessageClass "IPM.Appointment" Then Exit Sub End If If Item.Categories "Send Message" Then Exit Sub End If objMsg.To = Item.Location objMsg.BCC = "andrei.buldus@promotor.ws" objMsg.Subject = "Instiintare expirare Autorizatie/Contract Service" objMsg.Body = "Buna " & vbNewLine & _ "Acest lucru este in atentia departamentului nostru Service, si urmeaza sa fiti contactati in cel mai scurt timp posibil pentru a stabil cursul actiunilor viitoare." & vbNewLine & vbNewLine & _ "Va multumim pentru increderea acordata." & vbNewLine & _ "Promotor Import Export SRL" & vbNewLine & vbNewLine & vbNewLine & _ "Acesta este un mesaj automat." objMsg.Send Set objMsg = Nothing End Sub
安德烈·布尔杜斯
该评论由网站上的主持人最小化
由于线路而停止....如果 Item.Categories <> "Send Schedule Recurring Email" Then Exit Sub
当您添加其他类别时,它正在退出子......也许使用 if instr(1,item.categories,"Send Schedule Recurring Email") =0 then exit sub 或类似的东西......
胜利者
这里还没有评论
加载更多
留下你的意见
以访客身份发帖
×
评价此帖子:
0  产品特性
建议地点