Outlookの電子メールを抽出し、送信者の電子メールアドレスの一部(「@」の後で「.com」の前に)で名前を付ける必要があります。私のコードは正常に動作しますが、名前を変更する部分については、ファイルの一部が正しく割り当てられていない、特にスレッド内の電子メールが割り当てられています。私は過去2週間の解決策を探してみましたが、失敗しました。この問題に関して誰かが私を助けることができれば感謝します。ありがとう!間違った送信者の電子メールアドレスの抽出/割り当て
[UPDATED]: スレッド内:元のメールから始まるすべての後続の返信の実行リストです。
私は指定された場所に電子メールを抽出するためのコードを書いており、抽出後、その電子メールの名前は "company's name_datetime received_title of email"とする必要があります。ユーザー名送信者の電子メールアドレスから抽出するとします。たとえば、[email protected]から電子メールを受け取った場合、件名ヘッダーは「プロジェクト」です。抽出を実行すると、名前変更の方法は「会社A_12-08-2017 09:30 AM_Project」になります。
しかし、現在のコードでは、電子メールの中には会社名の異なるもの、特にスレッド内の電子メールの名前が付けられます。たとえば、[email protected]は「Project」というタイトルのメールを送信し、I([email protected])は返信し、タイトルは「RE:Project」になります。抽出を実行すると、電子メール "プロジェクト"の名前変更方法は正しいですが、電子メール "RE:プロジェクト"では、名前変更の結果は会社Cがその電子メールにも存在しない "companyC_datetime received_RE:Project" 。 (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
質問を編集して、過去2週間を試してみてください。また、「スレッド内」という意味を説明してください。希望の入力と一致する出力の例を提供してください。最後に、https://stackoverflow.com/help/mcveをお読みください –
@MaciejJureczko私は上記の私の質問を編集しました。ありがとう! – Cheese