web-dev-qa-db-ja.com

Appleメールからメールアドレスをエクスポートする方法は?

Apple Mailで誰かにメールを送信すると、そのアドレスが記憶されるので、別のメールを送信しようとすると、メールを追加していなくても、メッセージが表示されます。アドレス帳。

それらの記憶されたアドレスをエクスポートしたり、アドレス帳に保存したりする方法はありますか?

2
Shaun

メールで、[ウィンドウ]-> [前の受信者]に移動します。その後、それらをアドレス帳に追加できます。リストをファイルにエクスポートする場合は、ターミナルで sqliteデータベースに直接アクセスする sqlite3を使用してエクスポートできます。リンクからの抜粋(私のフォーマット):

これは私が思っていたよりも複雑であることがわかりましたが、それは可能です。

Appleメールプログラムは、Unixで利用可能な「sqlite3」というデータベースプログラムを使用します。実行可能ファイルは/ usr/binにあります。このプログラムの詳細については、ターミナルウィンドウに「mansqlite3」と入力してください。また、ウェブ上のwww.sqlite.orgに情報があります。データベース管理を専門とする友人が、これを解決するのを手伝ってくれました。

まず、ターミナルウィンドウで適切なディレクトリに移動します。

cd ~/Library/Application Support/AddressBook

対象のファイルはMailRecents-v4abcdmrです。

fileコマンドはこれを次のように説明していることに注意してください。

$ file MailRecents-v4abcdmr
MailRecents-v4.abcdmr: SQLite database (Version 3)

$ sqlite3 MailRecents-v4.abcdmr
SQLite version 3.4.0
Enter ".help" for instructions
sqlite>

ヘッダーを見てみましょう:

sqlite> .headers ON

それでは、このデータベースファイルの内容に関する情報を取得しましょう。

sqlite> select * from SQLITE_MASTER; /* don’t forget the semicolon */
/* lots of output */

テーブルZABCDMAILRECENTは私たちにとって興味深いものです。最後の3列はZLASTNAMEZFIRSTNAME、およびZEMAILと呼ばれることに注意してください。これらは、filename.txtのテーブルの列にあります。

sqlite> .mode columns ZABCDMAILRECENT
sqlite> .width 15 15 36 /* make sure the columns are wide enough */
sqlite> .output filename.txt /* note: no ‘;’ */
sqlite:> select ZLASTNAME, ZFIRSTNAME, ZEMAIL from ZABCDMAILRECENT;
sqlite> .exit

完了。電子メールの名前とアドレスは、1行に1つずつfilename.txtになりました。

たぶん、いつか、Appleの誰かがこの機能をメールに追加するでしょう。

3
fideli

OS X 10.10を使用している場合は、以前の受信者ファイルの場所が変更されたため、次のコードを使用します。私はいくつかの掘り下げをしました、そしてこれは私のために働きました(以下はすべて1行です):

sqlite3 -csv ~/Library/Containers/com.Apple.corerecents.recentsd/Data/Library/Recents/Recents 'select display_name, address from contacts where kind like "email";'>~/Desktop/recent.csv

この新しい「最近」ファイルには、FaceTimeとiMessageの受信者を含む最近のすべての連絡先が含まれているため、電子メールの連絡先のみをエクスポートするための追加のフィルターが追加されました。

5
thekurst

CSVファイルにエクスポートするには:

1行で実行:

sqlite3 -csv〜/Library/Application\Support/AddressBook/MailRecents-v4.abcdmr'ZABCDMAILRECENTからZLASTNAME、ZFIRSTNAME、ZEMAILを選択します; '

ファイル「recent.csv」にエクスポートするには:

sqlite3 -csv〜/Library/Application\Support/AddressBook/MailRecents-v4.abcdmr'ZABCDMAILRECENTからZLASTNAME、ZFIRSTNAME、ZEMAILを選択します; '> recent.csv

3
Niklas B

これは愚かですが、それを行う簡単な方法です。

すべてのメールにマークを付け、印刷を選択します。ただし、PDFに保存するように変更してから、Wordにエクスポートしてから、TXTファイル形式にエクスポートし、テキストラングラーでファイルのフィルタリングを開始します。

簡単ですが愚かです;)

1
Johan Ronnestam