首页 文章

Outlook 宏,如果未回复第一封电子邮件,则发送另一封电子邮件

提问于
浏览
-1

我是 Outlook 宏的新手。

我之前已经设计了一个宏,可以通过附加文件来发送电子邮件并发送到特定的电子邮件。

如果收件人从未回复我的第一封电子邮件,是否可以使用 Outlook vba 发送另一封提醒电子邮件?

Sub MonthlyInterco()

mth = Format(DateAdd("m", -1, Date), "mmmyy")

   Call SendFiles("C:\Users\haha\Desktop\interco\")

End Sub
Function SendFiles(fldName As String, Optional FileType As String = "*.*")

Dim fName As String
Dim sAttName As String

Dim olApp As Outlook.Application
Dim olMsg As Outlook.MailItem
Dim olAtt As Outlook.Attachments

Set olApp = Outlook.Application
Set olMsg = olApp.CreateItem(0) ' email
Set olAtt = olMsg.Attachments

' to send all
fName = Dir(fldName)

'to send only certain extensions
'fName = Dir(fldName & FileType)

    olAtt.Add fldName & "XYZ " & mth & " INTERCO STATEMENT.pdf"

  Debug.Print fName
   fName = Dir

' send message
With olMsg
  .Subject = mth & " Interco Reconciliation"
  .To = "xxx@hotmail.com"
  .CC = "yyy@hotmail.com"
  .HTMLBody = "Hi all," & "

Attached is " & mth & " interco schedule, kindly reconcile and update us if" & "

1) Any discrepancies" & "
2) All amount tie to your interco bal" & "

Thank you." & "

Best Regards," & "
zzz" & "
" .Display End With End Function

1 回答

  • 0

    您可以考虑两种基本方法。

    第一种方法是使用事件。我不一定推荐这种方法,因为大多数人喜欢在处理事件之前先有经验。您可以编写一个例程,并告诉 Outlook 在每次发生特定事件时执行该例程。例如,有发送电子邮件事件和电子邮件接收事件。您可以编写一个例程,该例程在每次发送电子邮件时都会执行。在该例行程序中我不会做太多事情,因为您不想减慢正常工作的速度。您也许可以将时间和收件人电子邮件地址添加到文本文件的末尾。当收到电子邮件时,类似的例程可以记录时间和发件人的电子邮件地址。

    每天可以运行另一个例程来处理这些文本文件。我将在 Excel VBA 中编写此例程,以便将结果写入工作表,这将有助于您开发宏。此宏必须将发送给 John Doe 的电子邮件与从 John Doe 收到的电子邮件进行匹配,并生成您尚未收到答复的电子邮件列表。这些电子邮件的收件人是您要向其发送跟踪电子邮件的人员。

    如果上述方法吸引您,请将其拆分为各个部分。不要搜索可以执行所需操作的例程,因为找不到它。不要发布问题来要求为您编写例程,因为此站点供程序员相互帮助开发;它不是一个免费的编码站点。

    查找 Outlook 事件。我认为 Outlook VBA 上的帮助不如 Excel VBA 上的帮助好,但是它在那里。查找所需的两个事件例程的示例。查找文本文件。您如何附加到文本文件?这并不困难。您如何匹配已发送和已接收文本文件中的条目?也许最简单的起点是将文件内容复制到工作表,然后通过电子邮件地址对其进行排序。一次对宏进行编码。如果您在执行特定步骤时遇到困难,请寻求帮助。您可以提出的问题数量没有限制,只要每个问题都显示您尝试过的代码并说明在 want/expect 时不起作用。

    第二种方法是例程,该例程每天搜索一次“收件箱”和“已发送邮件”,并提取事件例程记录的信息。我已经给您提供了一个例程的链接,该例程搜索“收件箱”并将每封电子邮件的选定属性输出到工作簿。这可能是您需要的例程的框架。

    您可以在收到的电子邮件的正文中搜索以下形式的字符串:“ [CR] [LF] [1] [2]在星期五,2016 年 11 月 4 日,13:43 zzzz>写道:[CR] [LF] [3] [4]”。几乎所有对您的电子邮件的答复都将包含这种格式的文本,其中 zzzz 是您的姓名,xxxx@yyyy 是您的电子邮件地址。这可能有助于匹配。

    我试图给你一些想法。我怀疑您能否在发送和接收的电子邮件之间实现 100%的完美匹配,但是如果您通过必要的步骤缓慢进行操作,则可以创建一组非常有用的宏。

相关问题