我需要提取Outlook電子郵件並將其用發件人電子郵件地址的一部分(在「@」之後和「.com」之前)命名。我的代碼工作正常,但對於重命名部分,一些文件沒有正確分配,尤其是線程內的電子郵件。過去兩週我曾嘗試尋找解決方案,但未能如願。希望有人能幫我解決這個問題。謝謝!提取/分配錯誤的發件人電子郵件地址
[已更新]: 在一個線程內:它是從原始電子郵件開始的所有後續回覆的運行列表。
我已經編寫了代碼將電子郵件提取到指定位置,並且在提取後,該電子郵件應該被命名爲「公司的名稱_日期時間received_title電子郵件」。用戶名假設從發件人電子郵件地址中提取。例如,如果我收到來自[email protected]的電子郵件,主題標題爲「項目」,當我運行提取時,重命名方式應爲「公司A_12-08-2017 09:30 AM_Project」。
但是,使用這個當前的代碼,一些電子郵件將被命名爲不同的公司名稱,特別是線程中的電子郵件。例如,[email protected]發送標題爲「項目」的電子郵件,我([email protected])回覆,標題現在變成「RE:Project」。當我運行提取時,電子郵件「項目」的電子郵件重命名方式是正確的,而對於電子郵件「RE:Project」,重命名結果竟然是「companyC_datetime received_RE:Project」,公司C甚至不存在於該電子郵件中。 (公司C來自其他電子郵件)。
Set SubFolder = OutlookApp.Session.GetFolderFromID(EntryID(i), StoreID(i))
On Error Resume Next
For j = 1 To SubFolder.Items.Count
Set MItem = SubFolder.Items(j)
strEmail = Split(SubFolder.Items(j).SenderEmailAddress, "@")(1)
If (InStr(1, strEmail, ".") > 0) Then
strFullName = Split(strEmail, ".")(0)
End If
StrReceived = Format(MItem.ReceivedTime, "dd-mm-yyyy H.MMAMPM")
strSubject = MItem.Subject
'Rename file as Bank name_Date_Title
StrName = StripIllegalChar(strSubject)
StrFile = StrSaveFolder & strFullName & "_" & StrReceived & "_" & StrName & ".msg"
StrFile = Left(StrFile, 256)
MItem.SaveAs StrFile, 3
Next j
On Error GoTo 0
Next i
請編輯問題,並寫下你過去兩週試過的東西。同時解釋你的意思是「在一個線程內」。請提供所需輸入和匹配輸出的例子。最後,請閱讀:https://stackoverflow.com/help/mcve –
@MaciejJureczko我上面編輯了我的問題。謝謝! – Cheese