我的最终目标是找到一种方式来标记我即将发送的电子邮件,并提醒我今天发送电子邮件的人和我今天的日期和时间加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
全部谢谢
答案 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