2016-11-04 125 views
-1

我是新的Outlook宏。Outlook宏發送另一個電子郵件,如果第一封電子郵件沒有回覆

我早先設計了一個宏,通過附加文件發送電子郵件併發送到特定的電子郵件。

如果收件人從未回覆我的第一封電子郵件,是否可以使用Outlook vba發送另一個提醒電子郵件?

Sub MonthlyInterco() 

mth = Format(DateAdd("m", -1, Date), "mmmyy") 


    Call SendFiles("C:\Users\haha\Desktop\interco\") 

End Sub 
Function SendFiles(fldName As String, Optional FileType As String = "*.*") 



Dim fName As String 
Dim sAttName As String 

Dim olApp As Outlook.Application 
Dim olMsg As Outlook.MailItem 
Dim olAtt As Outlook.Attachments 

Set olApp = Outlook.Application 
Set olMsg = olApp.CreateItem(0) ' email 
Set olAtt = olMsg.Attachments 

' to send all 
fName = Dir(fldName) 

'to send only certain extensions 
'fName = Dir(fldName & FileType) 


    olAtt.Add fldName & "XYZ " & mth & " INTERCO STATEMENT.pdf" 

    Debug.Print fName 
    fName = Dir 


' send message 
With olMsg 
    .Subject = mth & " Interco Reconciliation" 
    .To = "[email protected]" 
    .CC = "[email protected]" 
    .HTMLBody = "Hi all," & "<br /><br /> Attached is " & mth & " interco schedule, kindly reconcile and update us if" & "<br /><br /> 1)  Any discrepancies" & "<br />2)  All amount tie to your interco bal" & "<br /><br /> Thank you." & "<br /><br /> Best Regards," & "<br /> zzz" & "<br /> " 
    .Display 
End With 

End Function 
+0

一個星期前我給你發過郵件X.我4天前收到你的郵件。電子郵件Y是對X的答覆,對之前電子郵件W的回覆還是未鏈接到我的任何電子郵件的新電子郵件?通常,回覆包含原始電子郵件的標題和文本。如果您可以找到該標題,則可以將回復鏈接到原件。 Outlook會將您的回覆鏈接到原始郵件,但無法將回復鏈接到原始郵件。這是你的大問題:鏈接發送和接收的電子郵件。 –

+0

本答案http://stackoverflow.com/a/12146315/973283創建一個Excel工作簿,並將收件箱中每封電子郵件的詳細信息輸出到該工作簿中。目標是向您展示(1)VBA宏的電子郵件的外觀和(2)如何處理收件箱檢查每封電子郵件。按照指示修改該宏並試用。研究輸出和宏。什麼信息可用於您的宏?您如何在回覆中找到原始電子郵件的標題?你將如何根據你的需求調整宏。例如,您的電子郵件將不在收件箱中?他們仍然在發送物品中。 –

+0

我會先爲每個發送電子郵件的人創建一個列表,列出您發送給他們的電子郵件以及他們發送給您的電子郵件。這份清單將有助於確定您尚未收到答覆的電子郵件,並且這將是邁向您實際想要的宏觀的一步。 –

回答

0

您可以考慮兩種基本方法。

第一種方法是使用事件。我不一定會推薦這種方法,因爲大多數人在處理事件之前都喜歡一些經驗。您可以編寫例程並告訴Outlook在每次發生特定事件時執行它。例如,有發送電子郵件事件和收到電子郵件事件。您可以編寫每次發送電子郵件時執行的例程。因爲你不想減慢你的正常工作,所以我不會做太多的事情。您可以將時間和接收者電子郵件地址添加到文本文件的末尾。收到電子郵件時,類似的例程可以記錄時間和發件人電子郵件地址。

另一個例程可以每天運行一次來​​處理這些文本文件。我會在Excel VBA中編寫此例程,以便將結果寫入可幫助您開發宏的工作表。這個宏必須將發送給John Doe的電子郵件與從John Doe收到的電子郵件進行匹配,並生成未收到回覆的電子郵件列表。這些電子郵件的接收者是您想要發送追蹤者電子郵件的人。

如果上述方法對您有吸引力,請將其拆分爲其組件。不要搜索一個你想做的所有事情的例程,因爲你不會找到它。不要發佈一個問題,要求爲你編寫例程,因爲這個站點是爲了程序員互相幫助而開發的;它不是一個免費的編碼網站。

查找Outlook事件。我不認爲Outlook VBA的幫助與Excel VBA的幫助一樣好,但它在那裏。查找您需要的兩個事件例程。查找文本文件。你如何附加到文本文件?這並不困難。你將如何匹配發送和接收的文本文件中的條目?也許最簡單的出發點是將文件內容複製到工作表,然後通過電子郵件地址進行排序。一次編碼您的宏。如果您在特定步驟中遇到困難,請到這裏尋求幫助。您可以詢問的問題數量沒有限制,每個問題都會顯示您嘗試過的代碼,並解釋您希望/期望的工作不正常。

第二種方法是每天搜索一次收件箱和發送郵件並提取事件例程記錄的信息的例程。我已經爲您提供了一個指向搜索收件箱並將每封電子郵件的選定屬性輸出到工作簿的例程的鏈接。這可能是你需要的例程的骨架。 「[CR] [LF] [CR] [LF]發表於2016年11月4日星期五13:43 zzzz>寫道:[CR] [LF] [CR] [LF] [LF] [CR] [LF]」。幾乎所有對您的電子郵件的回覆都將包含這種格式的文本,其中zzzz是您的姓名,xxxx @ yyyy將是您的電子郵件地址。這可能有助於匹配。

我試圖給你一些想法。我懷疑你可以在發送和收到的電子郵件之間達到100%的完美匹配,但是如果你通過必要的步驟慢慢地工作,你可以創建一組非常有用的宏。

+0

感謝您花時間詳細解釋這兩種方法!我將詳細探索鏈接,並嘗試第二種方法! :) – koky

相關問題