簡體   English   中英

提取/分配錯誤的發件人電子郵件地址

[英]Extracting/Assigning wrong sender email address

我需要提取 Outlook 電子郵件並使用發件人電子郵件地址的一部分命名(在“@”之后和“.com”之前)。 我的代碼工作正常,但至於重命名部分,某些文件未正確分配,尤其是線程中的電子郵件。 過去 2 周我曾嘗試尋找解決方案,但未能如願。 如果有人能幫助我解決這個問題,我將不勝感激。 謝謝!

[更新]:在一個線程中:它是從原始電子郵件開始的所有后續回復的運行列表。

我已經編寫了將電子郵件提取到指定位置的代碼,提取后,該電子郵件應命名為“公司名稱_接收日期時間_電子郵件標題”。 用戶名假設從發件人電子郵件地址中提取。 例如,如果我收到來自 john@companyA.com 的電子郵件,主題標題為 "project" ,則在運行提取時,重命名方式應為 "company A_12-08-2017 09:30AM_Project"。

但是,使用此當前代碼,某些電子郵件將使用不同的公司名稱命名,尤其是線程中的電子郵件。 例如,john@companyA.com 發送一封標題為“Project”的電子郵件,我(cheese@companyB.com)回復了,標題現在變成了“RE:Project”。 當我運行提取時,電子郵件“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

On Error Resume Next是針對預期錯誤的。

我建議有一個意外錯誤,可能是當 MItem 對象不是郵件項時。

如果是這樣,這條線就會失敗。

strEmail = Split(SubFolder.Items(j).SenderEmailAddress, "@")(1)

現在由於 On Error Resume Next 的誤用,您沒有機會修復錯誤。 strEmail 保持錯誤前的狀態。

Dim MItem as object
If MItem.class = olMail then 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM