2017-04-24 68 views
1

我有一個Outlook 2007宏,它向收件人發送帶有標誌的電子郵件,但它不再工作。發送標誌不起作用的電子郵件

我錯誤地改變了代碼,現在它不再工作了。

收件人在TO DO中看不到電子郵件,並且在電子郵件列表中不顯示紅色。

Sub fff() 
    Dim outApp As Object 
    Dim OutMail As Object 

    Dim datDue As Date 
    datDue = DateAdd("d", 7, Date) 


    Set OutMail = outApp.CreateItem(0) 

    With OutMail 
     .To = "[email protected]" 
     .Subject = "test" 
     .HtmlBody = "msg" 

     .Importance = olImportanceHigh 
     .FlagStatus = olFlagMarked 
     .FlagRequest = "Follow up" 
     .ReminderTime = datDue & " 17:00 PM" 
     .ReminderOverrideDefault = True 
     .ReminderSet = True 
     .TaskStartDate = Date 
     .TaskDueDate = datDue 
     .Save 
     .Send 

    End With 

End Sub 
+0

你從哪裏運行代碼? Excel中? – 0m3r

+0

您應該在收件箱中檢查當前[規則](https://support.office.com/en-gb/article/Manage-messages-by-using-rules-80cc1f28-533d-4879-a8cc-ef83e9af0495) 。有一個默認的規則,從傳入的電子郵件中刪除類別(假設規則是指發件人,但不是收件人)。 –

+0

嗨,環境和上週一樣 - 代碼不會突出顯示紅色,標記和提醒觸發收件人。 – wittman

回答

2

你的變量OutApp是沒有用的,應該是Application,你這個直接在Outlook中使用。

我只是測試代碼和它工作得很好,我(Outlook 2013中):

Sub wittman() 
    Dim OutMail As MailItem 
    Dim datDue As Date 

    datDue = DateAdd("d", 7, Date) 
    Set OutMail = Application.CreateItem(0) 

    With OutMail 
     .To = "[email protected]" 
     .Subject = "test" 
     .HTMLBody = "msg" 

     .Importance = olImportanceHigh 
     .FlagStatus = olFlagMarked 
     .FlagRequest = "Follow up" 
     .ReminderTime = datDue & " 17:00 PM" 
     .ReminderOverrideDefault = True 
     .ReminderSet = True 
     .TaskStartDate = Date 
     .TaskDueDate = datDue 
     .Save 
     .Send 
    End With 'OutMail 
End Sub 
+0

嗨,在我的Outlook(2007)它不起作用。 – wittman

+1

*它不起作用*沒有幫助@ R3uK幫助你。你能描述它是如何不起作用的嗎(我看到一個錯誤信息,電子郵件出現但沒有發送等等)? –

+1

已測試Outlook 2010。我看不出任何明顯的2007年不支持。 –

1

您可以發送任務委託:

Sub AssignTask() 
Dim myItem As Outlook.TaskItem 
Dim myDelegate As Outlook.Recipient 
Set MyItem = Application.CreateItem(olTaskItem) 
MyItem.Assign 
Set myDelegate = MyItem.Recipients.Add("Eugene Astafiev") 
myDelegate.Resolve 
If myDelegate.Resolved Then 
    myItem.Subject = "Prepare Agenda for Meeting" 
    myItem.DueDate = Now + 30 
    myItem.Display 
    myItem.Send 
End If 
End Sub 

不要忘記,以取代「 Eugene Astafiev'在運行此示例之前使用有效的收件人姓名。

另外,您可以使用MailItem類的MarkAsTask方法將MailItem對象標記爲任務併爲該對象分配任務間隔。調用此方法將設置其他幾個屬性的值,具體取決於MarkInterval中提供的值。有關通過指定MarkInterval設置的屬性的更多信息,請參閱OlMarkInterval Enumeration

您可能會發現文章How to set a flag to follow up using VBA有幫助。

+0

嗨,MarkAsTask是發送或接收 - 我想標記爲收件人的任務 - 在他們的郵箱不在我的。 – wittman

+0

然後嘗試使用任務項目。查看更新後的答案。 –

+0

嗨,任務的問題是他們必須接受任務。我想要做的就是爲他們設置提醒 - 這樣他們就不會抱怨他們必須做的額外事情。 – wittman

相關問題