我的最終目標是找到一種方法來標記我要發送的電子郵件,並提醒我今天的日期和時間加上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