Извлечение / назначение неправильного адреса электронной почты отправителя
Мне нужно извлечь Outlook письма и назвать его с частью адреса электронной почты отправителя (после "@" и до ".com"). Мои коды работают нормально, но что касается переименования, некоторые файлы назначены неправильно, особенно электронные письма в потоке. Я пытался найти решения в течение последних 2 недель, но не смог. Буду признателен, если кто-нибудь может помочь мне в этом вопросе. Спасибо!
[ОБНОВЛЕНО]: Внутри цепочки. Это текущий список всех последующих ответов, начиная с исходного письма.
Я написал коды для извлечения электронных писем в указанное место, и после того, как оно будет извлечено, это электронное письмо должно называться "company_name_datetime receive_title of email". Имя пользователя Предположим, чтобы быть извлеченным из адреса электронной почты отправителя. Например, если я получил электронное письмо от john@companyA.com, заголовок темы - "проект", когда я запускаю извлечение, путь переименования должен быть "company A_12-08-2017 09:30AM_Project".
Тем не менее, с этим текущим кодом, некоторые электронные письма будут названы с другим названием компании, особенно электронные письма в потоке. Например, john@companyA.com отправил электронное письмо с заголовком "Project", и я (cheese@companyB.com) ответил обратно, и заголовок теперь станет "RE:Project". Когда я запускаю извлечение, способ переименования электронной почты для электронной почты "Project" является правильным, тогда как для электронной почты "RE:Project", результатом переименования оказывается "companyC_datetime receive_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
1 ответ
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