メール解析プログラムをJavaScriptで書いてみた、の巻

| | Comments (0) | TrackBacks (0)
HDEラボの桜井です。

HDEでは、仕事柄メールの処理プログラムを書くことが多く、
それらが多くの製品に組み込まれています。
それらはPerlだったりPHPだったり(ってLLじゃん)するんですが、
最近ちょっと困ったことがあったので、それならJavaScriptでメールを
解析して表示しようと思って書いてみました。
MITライセンスにしましたのでいろいろ使ったり書き換えたりしてみてください。
お問合せは近いうちにどこかで出来るようにします。

MailViewer 1.0.0

ちょっとした注意事項は、
・あまり大きなメールファイルはブラウザがハングする(1MB以上あったら大変かも)
・MIMEのデコードはできません
・文字コードもデコードできません
#これらの機能もそのうち実装したいんですけどね。

使い方を簡単に書いておきます。
まず、なんといってもヘッダで定義しないと始まりません。
ついでにインスタンスも生成して、解析したいeml形式のテキストをセットします。
さらに簡単なメソッドの説明も付けておきます。


<script type="text/javascript" src="MailViewer.js"></script>
<script type="text/javascript">
<!--
var email = "メールファイルorマルチパートの本文";
var mailViewer = new MailViewer();
mailViewer.email = email;

/* メールのヘッダ部分を取り出して表示 */
/* マルチパートの本文部分を渡すとマルチパートのヘッダが取り出せます */
alert(mailViewer.getEmailHeader(email));

/* メールの本文を取り出して表示 */
/* マルチパートの本文部分を渡すとマルチパートの本文が取り出せます */
alert(mailViewer.getEmailBody(email));

/* マルチパートメールからTextのパートのみ取り出します */
alert(mailViewer.getMultipartTextBody(mailViewer.getEmailBody(email),
                          mailViewer.getBoundary(mailViewer.getEmailHeader(email))));

/* マルチパートメールからHTMLのパートのみ取り出します */
alert(mailViewer.getMultipartHtmlBody(mailViewer.getEmailBody(email),
                          mailViewer.getBoundary(mailViewer.getEmailHeader(email))));

/* メールから添付ファイルのファイル名と種類の配列を取得 */
alert(mailViewer.getAttachedList(mailViewer.getEmailBody(email),
                          mailViewer.getBoundary(mailViewer.getEmailHeader(email))));
//-->
</script>



気が向いたらもうちょっと説明書きますが、後は短いのでソースを読んで楽しんでいただければと思います。

0 TrackBacks

Listed below are links to blogs that reference this entry: メール解析プログラムをJavaScriptで書いてみた、の巻.

TrackBack URL for this entry: http://lab.hde.co.jp/blog/mt-tb.cgi/30

Leave a comment

About this Entry

This page contains a single entry by Takeshi SAKURAI published on March 31, 2008 6:19 PM.

日経225のSPF対応状況(2008年3月) was the previous entry in this blog.

ERRORログをメールで通知する ~tailコマンド編~ is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.