Outlook BCC没有足够快地解析名称?

时间:2017-09-01 14:42:20

标签: vba email outlook bcc

我的最终目标是找到一种方式来标记我即将发送的电子邮件,并提醒我今天发送电子邮件的人和我今天的日期和时间加x天。我多年来从Excel生成新的邮件项目时能够做到这一点。我遇到的问题是在Outlook 2016中使用当前项目。

从Excel中,我标记了收件人跟进的电子邮件,然后我自己就是BCC。当电子邮件发送时,它会反弹回我,我收到提醒,因为我是收件人。

我对Outlook VBA的第一种方法是用自己的提醒标记电子邮件,也是一个类别。我遇到的问题是,一旦发送电子邮件,它将删除我自己的提醒,但不会删除收件人。该类别仍将附上。所以我决定切换并试用我用过Excel的方法。

此代码中的所有内容都很有效。电子邮件地址正在附加,之前的所有提示都在工作,提醒日期是正确的。所有工作除了一件事。我在BBC专线上的电子邮件地址无法解决或解析得不够快,我不确定。错误消息显示:"操作失败。消息传递接口返回了未知错误。如果问题仍然存在,请重新启动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 = "myemail@email.com"
            '.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@email.com")
         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

全部谢谢

1 个答案:

答案 0 :(得分:0)

您不应该在处理该项目的Application.ItemSend事件处理程序中调用MailItem.Recipients.Add。只需让Outlook继续执行默认行为即可 您也不应该通过设置BCC属性来替换所有 BCC收件人:致电Recipient.Type并将olBCC属性设置为var admin = require("firebase-admin"); var serviceAccount = require("path/to/serviceAccountKey.json"); var instance = admin.initializeApp({ credential: admin.credential.cert(serviceAccount), databaseURL: "https://YOUR_DATABASE_NAME.firebaseio.com" }); module.exports.firebaseDB = instance.database();// Export the database object