我的最终目标是找到一种方法来标记我要发送的电子邮件,并提醒我今天的日期和时间加上x天的时间,以便发送电子邮件的人和我自己。多年以来,我在Excel中生成新的邮件项目时都能够做到这一点。我遇到的问题是使用Outlook 2016中的当前项目执行此操作。Outlook BCC不够快速解析名称?
从Excel中,我将邮件标记为收件人的后续邮件,然后是BCC自己。当电子邮件发送时,它会弹回给我,并且我收到提醒,因为我是收件人。
我使用Outlook VBA的第一种方法是为电子邮件添加一个提醒我自己和一个类别。我遇到的问题是,一旦电子邮件发送,它会为我自己删除提醒,但不是收件人。该类别仍然会附加。所以我决定切换并尝试使用Excel的方法。
此代码中的所有内容都很棒。电子邮件地址已附加,所有提示都在工作之前,提醒日期是正确的。除了一件事以外,所有的工作。我的电子邮件地址在英国广播公司线没有解决或解决不够快,我不知道。错误消息为:“操作失败,消息传递界面返回了未知错误,如果问题仍然存在,请重新启动Outlook,无法解析收件人。”
任何人都知道发生了什么事情,或者如果有任何方法强制Outlook在发送之前解析此电子邮件地址?
Private Sub Application_ItemSend(ByVal olItem As Object, Cancel As Boolean)
Dim response As Integer
Dim DaysToRemind As Byte
response = MsgBox("Would you like to delay send this email?", vbYesNo)
On Error GoTo Skip
If response = vbYes Then olItem.DeferredDeliveryTime = Format(Date, "m/d/yyyy") & " 4:00:00 PM"
On Error GoTo Skip
If response = vbNo Then olItem.DeferredDeliveryTime = Now() - 1
prompt$ = "Do you want to flag this message for followup?"
If MsgBox(prompt$, vbYesNo + vbQuestion + vbMsgBoxSetForeground, "Add flag?") = vbYes Then
DaysToRemind = InputBox("How many days to remind?", "Days Till Reminder", 3)
With olItem
.FlagStatus = olFlagMarked
.FlagRequest = "Follow Up"
.FlagDueBy = Now + DaysToRemind
.Categories = "Waiting on Response"
.BCC = "[email protected]"
'.Save
.Send
End With
End If
Skip:
End Sub
一些工具与在此之后,我不得不结束了设立规则做一切我想做的事,但它得到了我什么,我想基本上是。
Private Sub Application_ItemSend(ByVal olItem As Object, Cancel As Boolean)
Dim response As Integer
Dim DaysToRemind As Byte
response = MsgBox("Would you like to delay send this email?", vbYesNo)
On Error GoTo Skip
If response = vbYes Then olItem.DeferredDeliveryTime = Format(Date, "m/d/yyyy") & " 4:00:00 PM"
On Error GoTo Skip
If response = vbNo Then olItem.DeferredDeliveryTime = Now() - 1
Des = MsgBox("Do you want to flag this message for followup?", vbYesNo + vbQuestion + vbMsgBoxSetForeground, "Add flag?")
If Des = vbYes Then
DaysToRemind = InputBox("How many days to remind?", "Days Till Reminder", 3)
With olItem
.FlagStatus = olFlagMarked
.FlagRequest = "Follow Up"
.FlagDueBy = Now + DaysToRemind
If Right(.Subject, 4) <> " (T)" Then .Subject = .Subject & " (T)"
Set myEmail = .recipients.Add("[email protected]")
myEmail.Type = olBCC
myEmail.Resolve
.Save
End With
End If
If Des = vbNo Then
If Right(olItem.Subject, 4) = " (T)" Then olItem.Subject = Left(olItem.Subject, Len(olItem.Subject) - 4)
End If
Skip:
End Sub
感谢所有
只是一个想法,但你缺少.TO地址 - 您要发送电子邮件没有收件人,但只有.BCC - 或者我不完全理解你在做什么。 – BobSki
此代码在我输入电子邮件并点击发送按钮后运行,所以我已经填写了TO部分,主题和正文。然后它会问我是否要延迟交付到下午4点(如果消息不是非常重要的话)或者我想添加提醒。如果我添加提醒,我希望它能密码我的电子邮件地址。 –
一旦你做.BCC行 - 做一个睡眠2000年 - 然后检查您的电子邮件地址是否有.SEND。这将是我想尝试 – BobSki