ちょっと変わったマニアな作品が集結

現在Thunderbirdを使いメールをやり取りしています。

現在受信メールボックスの中に数百通のメールが着信しているのですが
その全てのメールアドレスをエクセルなどのファイルにまとめたいと思っています。

一つ一つアドレスをコピーするには数が多すぎて困惑しています。
何か知恵をお貸しください。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

まず、CygwinをInstallしてなければInstallします。



次にInboxがどこにあるか探します。
C:\Documents and Settings\[user name]\Application Data\Thunderbird\Profiles
以下のディレクトリでInboxを検索すればよいでしょう。

C:\cygwin\tmpにコピーします。

cygwinを起動します。

cd /tmp
次のスクリプトfrom.shを入力します。
awk < Inbox '
/^From: / {
for (i = 2; i <= NF; ++i) {
printf "%s ", $i;
}
printf "\n"
}' | sort | uniq

スクリプトを実行します。
sh from.sh > from.dat
    • good
    • 0

アドレス帳へ登録されているなら、CSV形式でエクスポートすればいいです。


方法はリンク参照
http://address2.duogate.jp/faq/about-im-files.html
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

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

こんにちは

OutlookExpressで受信したメールの本文(オーダーフォーム)からメールアドレスの部分を
抽出したいのですが可能でしょうか。

また、受信したメールの「送信者」のアドレスを抽出することは可能でしょうか。

それぞれ数百通有るので途方に暮れています。
良い方法を教えてください。

Aベストアンサー

こんにちは。

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/

こんにちは。

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 ...続きを読む


人気Q&Aランキング