分割メール結合アドオンJoinをThunderbird 3.0で
Outlookや、一部のメールユーザクライアントは、メールが一定以上のサイズになると、そのメールを分割して送信する機能を持っている。メールサーバのサイズ制限で大きなメールが送れないときも、この機能を使うことで、送信できるようになるわけだ。しかも、時々我々を困らせる某社独自拡張ではなく、RFC 2046(www.ietf.org)の5.2.2.で定義されており、れっきとした標準仕様である。
だが、困ったことに、Thunderbird君はこの仕様に則ったメールを受け取っても結合する術を持たない。しかも、真っ白な本文に、「attachment」なる一つの添付ファイルだけの内容を示してくるからタチが悪い。そんなに不審なメールに見せたいの?どうしてBug 71189(bugzilla.mozilla.org)を塩漬けにするの?
さて、そこで活躍するのがThunderbirdアドオンJoin(www.c-a-m.co.jp)だ。
このアドオンは、RFC 2046の5.2.2.で定義されているmessage/partial形式の分割メールを結合する機能をThunderbirdに付加してくれる。
使い方は簡単で、届いた同じ分割メールを全て選択し、右クリックから結合するメニュー項目を選ぶだけ。結合が成功すると、同じフォルダに結合後の元のメールが追加される。
しかし、このプラグイン、Mozilla Foundationが満を持して発表したThunderbird 3.0に対応していない。もちろん、Thunderbird 3.0も分割メールに対応していない。なんてこったい……
とは言うものの、今更Thunderbird 2.*には戻りたくない。だって、Glodaが便利すぎるんだもの。
それならば、自分で動くようにするまでだ……と、意気込んでパッチ作ってしまった。
chrome/join.jar/content/join.js:116
// 選択されているメッセージの、メッセージ URI のリストを取得する
- var sMsgUriLst = GetSelectedMessages();
+ var sMsgUriLst = gFolderDisplay.selectedMessageUris;
// メッセージが複数選択されていない場合、中断する
chrome/join.jar/content/join.js:323
// よく分からない
- var oResource = GetSelectedFolderResource();
- var oMsgFolder = oResource.QueryInterface( Components.interfaces.nsIMsgFolder );
+ var oMsgFolder = gFolderDisplay.displayedFolder;
var oMsgLocalFolder = oMsgFolder.QueryInterface( Components.interfaces.nsIMsgLocalMailFolder );
chrome/join.jar/content/join.js:439
// そのフォルダのメッセージ数を取得する
- var oView = window.GetDBView();
+ var oView = gDBView;
var oFolder = oView.msgFolder;
chrome/join.jar/content/joinOverlay.xul:10
<script language="JavaScript" src="chrome://messenger/content/addressbook/abMailListDialog.js"/>
- <popup id="threadPaneContext">
- <menuseparator />
+ <popup id="mailContext">
<menuitem id="join" label="&join.label;" accesskey="J" oncommand="Join.Main();" />
install.rdf:7
em:id="{3550f703-e582-4d05-9a08-453d09bdfdc6}"
- em:minVersion="1.5"
- em:maxVersion="2.0.0.*" />
+ em:minVersion="3.0"
+ em:maxVersion="3.0.*" />
<RDF:Description RDF:about="urn:mozilla:install-manifest"似非diffぽい感じに。
使ってみると、動作は完璧(?)。ちゃんと結合が機能するし、エラーコンソールを見てもエラーらしき項目は一つも見えなかった。
これで、暫く安心してThunderbird 3を使えたらいいなぁ……?
細かいこと
このパッチを作っていて分かったこと。
* GetSelectedMessages() 廃止されました。 gFolderDisplay.selectedMessageUrisを使いましょう。 * GetSelectedFolderResource() 廃止されました。 gFolderDisplay.displayedFolderを使いましょう。 * GetDBView() 廃止されました。 gDBViewを使いましょう。 * threadPaneContext mailContextに変更されました。
追記
2010/01/18 バージョン縛りの表記が不味かったらしいので修正した。
更に追記
公式で対応されたようだ。やったね!