Outlook VBAに関するヘルプが必要です。配信不能メール本文からテキスト文字列を抽出してExcelに送信
個々の配送不能メール本文から電子メールアドレスを抽出するために、Outlookにマクロを書き込もうとしています。
配信に失敗したメールは何百もありますので、手動でコピーして貼り付けるよりも自動的に抽出できる方が良いでしょう。
メールの本文は以下のようになります:
----------------------------メール---- ------------------------
配達は、これらの受信者またはグループに失敗しました:
[email protected](XXXX @ XXXXXX.XXX)
...不要情報...
...不要情報...
------------------------ ---- Email -----------------------------
私は完全にOutlookのVBA初心者ですこれは、Excelシートを開いた私のテストメールの受信トレイ、上で完璧に勤務し、すべてのPAを記載されている
Sub Test()
Dim myFolder As MAPIFolder
Dim Item As Outlook.MailItem 'MailItem
Dim xlApp As Object 'Excel.Application
Dim xlWB As Object 'Excel.Workbook
Dim xlSheet As Object 'Excel.Worksheet
Dim Lines() As String
Dim i As Integer, x As Integer, P As Integer
Dim myItem As Variant
Dim subjectOfEmail As String
Dim bodyOfEmail As String
'Try access to excel
On Error Resume Next
Set xlApp = GetObject(, "Excel.Application")
If xlApp Is Nothing Then
Set xlApp = CreateObject("Excel.Application")
xlApp.Application.Visible = True
If xlApp Is Nothing Then
MsgBox "Excel is not accessable"
Exit Sub
End If
End If
On Error GoTo 0
'Add a new workbook
Set xlWB = xlApp.Workbooks.Add
xlApp.Application.Visible = True
Set xlSheet = xlWB.ActiveSheet
Set myFolder = GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
For Each myItem In myFolder.Items
subjectOfEmail = myItem.Subject
bodyOfEmail = myItem.Body
'Search for Undeliverable email
If bodyOfEmail Like "*Delivery*" & "*failed*" And indexOfEmail Like "*Undeliverable*" Then
x = x + 1
'Extract email address from email body
Lines = Split(myItem.Body, vbCrLf)
For i = 0 To UBound(Lines)
P = InStr(1, Lines(i), "@", vbTextCompare)
Q = InStr(1, Lines(i), "(", vbTextCompare)
If P > 0 Then
xlApp.Range("A" & x) = Trim$(Mid$(Lines(i), 1, Q - 1)) 'extract the email address
Exit For
End If
Next
End If
Next
End Sub
:検索と多くのトレイルの多くの後、私は最終的に以下のコードを思い付い目標の電子メールの中の事実上の電子メールアドレス。
しかし、このコードを私の仕事の電子メールアカウントで実行すると、それは私には何も分かりませんでした。それから、「配送不能」の電子メールを読むのに問題があることがわかりました。奇妙なことは、それを実行したたびに、伝えられない電子メールの1つが繁体字に変わり、全く読むことができません。
以下のように:
格浴㹬格慥㹤洼瑥瑨灴攭畱癩∽潃瑮湥祔数•潣瑮湥㵴琢硥⽴瑨汭※档牡敳㵴獵愭捳楩㸢⼼敨摡㰾潢祤ാ㰊㹰戼㰾潦瑮挠汯牯∽〣〰㘰:猠穩㵥㌢•慦散∽牁慩≬䐾汥癩牥⁹慨慦汩摥琠桴獥敲楣楰湥獴漠牧畯獰㰺是湯㹴⼼㹢⼼㹰昼湯⁴潣潬
このコードは私のテスト電子メールでのみ転送配信不能メール、上の作品のように私は感じています受信トレイ。しかし、それはマイクロソフトの見通しから送られたオリジナルの配信不能な電子メールから読み取ることは決してありませんし、これらの電子メールを1文字ずつ漢字に変換しました。
私は彼らが失敗した配信メールのOutlookのいくつかのバグだように見えた、それについてGoogleで検索。あなたの誰かがこれを修正する方法を知っていますか?または、コードを改善する方法はありますか?私は何かを変えたいと思っています。
電子メールは同じ送信者から送信されていますか?どのオフィスが使用していますか? – 0m3r
@ 0m3rほとんどのものはMicrosoft Outlookに由来していますが、そのうちのいくつかは[email protected]から来ました - ホットメールやその他の企業ドメインのようなさまざまなサーバー。私はMicrosoft Office 365 ProPlusを使用しています。バージョンは1609だと思います。 – dayaoyao