2014
05/09

.iafファイルをPHPにより一括で生成する

WindowsLiveメールではアカウント情報を.iafという形式でエクスポートしたりインポートしたりすることができます。
多くのPCにメールをセッティングする場合、このiafファイルを一括で作成して配布すれば簡単に終わるのではないかと思い、iafファイルの作成方法について調べてみました。

ID、パスワード、POP・SMTPサーバ名を伝えて「各自設定してくださいー^^」で終わりそうな話ですが、そうもいかないケースが往々にしてあります…。

ADs

IAF decoder coderを使う

IAF decoder coderはPHPで書かれたiafファイルの生成や解析を行うライブラリです。ライセンスはGPLとなってます。

CPANモジュールのWin32::Outlook::IAFをPHPに移植したものとなっています。Perlが書ければこちらのモジュールを使いたかったのですが、私はPerlがさっぱり分からないのでPHPで書くことにしました。

生成したいiafファイルが一つだけであれば手作業でメール設定を行っても大した手間ではないので、CSV形式で入力して大量のiafファイルを一気に作成できるようなスクリプトを書いてみました。

HTML

前提条件として

・POPサーバ/SMTPサーバはpop3.example.com/smtp.example.com である
・SMTP認証が有効で、そのときのアカウント・パスワードはPOPサーバと同じ
・受信ポートは110、送信ポートは587
・送信元メールアドレスは設定されるアドレスと同じ

ということにしてiafを生成します。
細かい設定が必要な場合は後述のgenerate.php内を修正して使ってください。

入力が必要な内容は「ドメイン名」「@の前,アカウント名,パスワード」のみとしています。

PHP

上記の入力内容を受けて、iafファイルを生成します。
複数のiafファイルをzipにしてダウンロードする、という処理となっています。

実際に動作するDEMO
Githubから一式ダウンロード

セキュリティ対策を取っていません。実際に運用しているメールのアカウントやパスワードを入力することはやめてください。

メールのアカウントやパスワードというデリケートな内容を扱うため、非公開のサーバ上で動作させるほうが望ましいでしょう。

設定内容が分からない場合

File_Format_Iaf.phpを見てみると分かるのですが、POPだけでなくIMAPの設定で作成できたりWindowsLiveメールのアカウント設定で指定可能なオプションのほとんどが指定できます。

中には単純な文字列ではなく、0/1/2などの数字を入力して指定する必要のある箇所がありますが、それぞれの数字が何を意味しているのかよく分かりません。

そのような場合は実際に動作しているメールアカウントからiafファイルをエクスポートし、解析することで設定値を判断することができます。

以下のようにloadという処理でファイルを読み、getFields()という処理を実行すれば現状の設定値が表示されます。

結果は以下の様に表示されます。

ADs

Post Comments

メールアドレスが公開されることはありません。

Comments

コメントはまだありません。