• ベストアンサー

【OutlookExpress】メールアドレスを抽出したい。

こんにちは OutlookExpressで受信したメールの本文(オーダーフォーム)からメールアドレスの部分を 抽出したいのですが可能でしょうか。 また、受信したメールの「送信者」のアドレスを抽出することは可能でしょうか。 それぞれ数百通有るので途方に暮れています。 良い方法を教えてください。

  • jkp
  • お礼率22% (52/235)

質問者が選んだベストアンサー

  • ベストアンサー
  • tubumame
  • ベストアンサー率63% (7/11)
回答No.1

こんにちは。 OutlookExpressでお望みの作業を実施する方法はおもいつきませんが、Outlookでなら方法はあります。 まず、Outlookに対象メールをエクスポートします。 (メニューの"ファイル"->"エクスポート"で出来ます) Outlookで以下のマクロを作成します。 Public Sub getSenderMailAddress() Dim personalFolder As MAPIFolder Dim appNameSpace As NameSpace Dim i As Integer Dim dic As Object Dim varItem As Variant 'ディクショナリの作成 Set dic = CreateObject("Scripting.Dictionary") Call dic.RemoveAll 'ルートフォルダの取得 Set appNameSpace = Application.GetNamespace("MAPI") Set personalFolder = appNameSpace.Folders.Item(1) doResearch personalFolder, dic '保存ファイルのオープン Open "保存ファイルのパス\保存ファイル名" For Output As #1 '取得したデータ(送信者アドレス、メール本文)の件数分ループ For Each varItem In dic 'Emptyのチェック If Not varItem = Empty Then '取得データの出力 Print #1, varItem End If Next 'ファイルクローズ Close #1 End Sub ------------------------------------------------- Private Sub doResearch(ByRef parentFolder As MAPIFolder, ByRef dic As Object) Dim childFolder As MAPIFolder Dim curMail As mailItem Dim mailCount As Integer Dim folderCount As Integer 'ルートフォルダ配下のフォルダ件数分ループ For folderCount = 1 To parentFolder.Folders.Count 'フォルダ一覧からfolderCount件目のフォルダを取得 Set childFolder = parentFolder.Folders.Item(folderCount) '現在のフォルダに存在するメールの件数分ループ For mailCount = 1 To childFolder.Items.Count '現在のフォルダのmailCount件目のメールのタイプをチェック '普通のメールの場合はMailItemだが、開封通知などはMailItemでは無いため 'のチェック。 If TypeOf childFolder.Items.Item(mailCount) Is mailItem Then '現在のフォルダからmailCount件目のメール取得 Set curMail = childFolder.Items.Item(mailCount) '重複チェック If Not dic.Exists(curMail.SenderEmailAddress) Then '同一データが存在しないので、登録 dic.Add Key:=curMail.SenderEmailAddress, Item:=curMail.SenderEmailAddress End If End If Next '現在のディレクトリが子ディレクトリを持っていれば '自分自身を呼び出す。(再帰呼び出し) If childFolder.Folders.Count <> 0 Then doResearch childFolder, dic Next End Sub 上記マクロは、全てのフォルダ内の全てのメールの送信者のアドレスを取得し、指定ファイルに出力するマクロです。同一アドレスが重複して出力されないようになっています。作成を終えたら、"ツール"->"マクロ"->"マクロ"でマクロダイアログを表示し、getSenderMailAddressを指定して"実行"押下で実行すれば、受信メールの送信者アドレス一覧が作成されます。メール本文からメールアドレスの部分を抽出するときは、まず関数doResearch内のsenderEMailAddressをBodyに変更し、全てのメールの本文を抽出します。(本文抽出は重複チェックなどしなくていいのですが...まあ良しとしましょう。) 次にある文章の中からメールアドレスのみ抽出してくれるサービス??を提供しているサイトがある(私も初めて知ったのですが....)ので、そのサイトに行き、作成された全メールの本文一覧ファイルの内容をインプットとして、メールアドレスを抽出します。ただし、数百通もあるとのことなので、本文一覧も相当量のデータになると思われます。一度に全てを抽出するのではなく、何回かに分けたほうがよいような気がします。以上で、本文よりメールアドレスを取得することがdきます。 以下に上述したサイトのURLを記載します。 http://www.ahref.org/cgi/mailchu/

その他の回答 (1)

  • seri95
  • ベストアンサー率69% (579/832)
回答No.2

有料なんですけど、メールアドレスをまとめて抽出してくれるソフトがあります。 http://atcopier.com/manual/index.html 重複アドレスや不正アドレスを削除することもできます。 一度にまとめて抽出するには OEの場合は、受信メールを一旦Outlookにエクスポートしてから、ひとまとめにしてテキストとして保存し、その中からアドレスだけを抽出する方法になるようです。 フリー版で動作を確認しましたが、扱えるアドレス数は10件までなので・・有料版(ちょっと高めです)でないと実用的ではありませんね。

参考URL:
http://atcopier.com/manual/index.html

関連するQ&A

  • OutlookExpressで受信したメールが読めません

    OutlookExpressで受信したメールの本文が表示されません タイトルと送信者は表示されるのですが??? 突然の事で困ってます、対処方法を教えて下さい。

  • 【Outlook】受信メールアドレスを抽出したい

    こんにちは Outlookで受信したメールの「送信者」のアドレスを抽出する方法が以下に記されていましたが、Outlookで受信したメールの「受信者」のアドレスを抽出したいのですが、SenderMailAddressに対するRecepientMailAddressのようなプロパティが見つけられず、困っています。 http://okwave.jp/qa/q1246445.html できれば、他に「CC」に入っているアドレスを抽出する方法も分かれば、最高です。 どなたか良い方法を教えてください。 (VBA超初心者です)

  • OutlookExpressでメールのフォームを保存したいです。

    OutlookExpressでメールのフォームを保存したいです。 特定の人に最初の連絡文は毎回同じなので、メールアドレスや件名、出だしの文章などあらかじめフォームとして保存しておいてすぐに使えるようなショートカットにしておきたいのですが、どのようにすればよいでしょうか? 以前は、ファイルから「名前をつけて保存」をすればフォームができたのですが最近開くと受信したメールのようになり送信ができなくなってしまいました。上手にできる方法があればお教えください。

  • 迷惑メールの振り分け方(OutlookExpress)

    メールはOutlookExpressを使ってます。 迷惑メール(出会い系など)が日に10~15通程届きます。 そのうち7割程が同じサイトからのメールで 送信者の名前、アドレス、件名は毎回違います。 本文の内容も微妙に違うのですが すべてのメールに共通しているのは毎回サイトのURLが書いてある事です。 そこで迷惑メールの振り分け?をしようと思い 【ツール】→【メッセージルール】→【メール】→【新規作成】→ 【(1)ルールの条件(本文に指定した言葉が含まれるにチェック〆)】→ 【(2)ルールのアクション(サーバーから削除するにチェック〆)】→ 【(3)ルールの説明(指定した言葉部分にメールに書かれているURLを入れる)】→【OK】 以上の手順で設定しています。 ですが・・・それでも毎日毎日メールが届くのです>< この方法で設定方法が間違っていますか? 毎日届くので受信してから削除するのが面倒なので 私の希望としては受信さえしたくありません。 何か良い方法がございましたら教えて下さい。 よろしくお願いします。

  • OutlookExpressで送信アドレスに返信するとfailure noticeガ届く

    いつも、助かっています。 友人のパソコンです。WinXP、OutlookExpress6です。プロバイダを変えたので、新しいメールアドレスの連絡が来たのですが、届いたメールのプロパティの送信者のアドレスと、変更した新しいメールアドレスは、@から後ろの文字が違うのです。メール本文の中で、新しいメールのアドレスに送信すると、友人に届くのですが、届いたメールから返信をすると、サーバーが見つかりませんとfailure noticeが届きます。OutlookExpressのツールからアカウントで調べてもらうと、メール本文にある新しいアドレスが入力されている、というのです。どうして、送信アドレスが、アカウントで設定しているアドレスと違うのか、分かりません。よろしくお願いします。

  • OutlookExpress 送信者アドレスをクリップボードにコピー

    こんにちは OutlookExpressの受信トレーをプレビューした状態で、 そのメール送信者のアドレスをクリップボードにコピーしたいのですが、 簡単な方法は無いでしょうか。 今は、その都度メールを開き、送信者のプロパティーを開いて メール部分を範囲指定しコピーしています。 キーボードからのショートカットで1発でコピーできるような方法が理想です。 よろしくお願いします。

  • MAILER-DAEMONからメールアドレスを抽出

    PHPでメールの一斉送信を行うシステムを作成しています。現在、下記のような機能を実装しようとして悩んでいます。 (1) PHPから多数の宛先にメールを一斉送信 (2) MAILER-DAEMONとなって戻ってきたメールをPHPで受信 (3) (2)で戻ってきた宛先はエラーなので、次回以降は送信対象から自動的に除外 (4) (1)に戻る 以下、1日1サイクルごと繰り返し 悩んでいるのは(2)と(3)の部分です。 MAILER-DAEMONとなって返ってきたメールをPHPで受信することは出来たのですが、そのMAILER-DAEMONとなったメールが元々どの宛先に送ったものなのか、うまく判断できません。 メールヘッダを見ても元々の宛先は無く、本文から判断するにしてもメールサーバによってMAILER-DAEMONの書式が違うようで、文字列を切り出すことができませんでした。 このように、MAILER-DAEMONのメールから、元々の宛先(エラーとなったメールアドレス)を抽出するにはどのように処理すれば良いのでしょうか?

    • ベストアンサー
    • PHP
  • OutlookExpressとOutlook

    先日PCを替えたのですが、今までOutlookExpressの本文中に書き込まれたメールアドレスをクリックすると、OutlookExpressが立ち上がって送信をできるようになっていました。 ところが、今回同じような作業をするとOutlookExpressではなくてOutlookのメーラーが立ち上がるようになってしまいました。 どうしたら今までのようにOutlookExpressが立ち上がるようになるのかどなたか教えて下さい。

  • OutlookExpressのメッセージの移動

    知り合いのPCですが、、、、(WinXP) SP2のインストールをしたら、OutlookExpressの アドレスやメール本文が消えたそうです。 アドレスは私も何とか探して元の状態に出来たのですが メール本文(受信トレイの中身)は探し当てたのですが (受信トレイ.dbx)を元の位置に戻せません。 アドレスのようにコピー&貼り付けでは、メール添付 みたいになってしまいます。 どうしたら 普通にOutlookExpressを開いて今までに受信した メールを見られるように戻せるのでしょうか? よろしくお願いします。

  • 受信メールか送信メールのアドを抽出する方法

    受信ボックスに入っているメールアドレスを一括で抽出する方法があれば教えて頂けませんか? 送信ボックスに入っているメールアドレスでも構いません。 一つ一つではなく、沢山のメールからアドレスを一度に抽出出来ればと思っています。 使っているメールソフトはBecky! 2になります。 宜しくお願いします。