« WebKitの憂鬱 | トップページ | 2012夏休みの終 »

mimeの面倒

 今頃はweb絡みの仕事もperlで書かれたフォームメールの編集を終わっていたはずなのですが、未明に事務所で作業をしていると、暫定的に送信先に指定したiCloudメールの題名が表示されないことに気がつきました。
 
 あれ?自宅のメーラーではちゃんと表示されていたのに?(と今から考えるとここがポイントだった) とMac上のSafariでiCloudのメールをチェックしながら四苦八苦。
 というか、このperlで書かれたフォームメールのスクリプト、十年近く使ってて、これまでそんなトラブルが出たことがありませんでした。 不思議不思議。 恐らく三時間近くここで足踏みをしました。
 
 気分転換にパンを買いに夜明けのコンビニに向かう。 そこで「はた」と気がついた。
 もしかしたらメーラーでは表示されているのではないか?と。
 
 事務所に帰ってメールヘッダーについて改めて調べると、本来はMIMEエンコードされているが、JISでも最近は大概OKだ、という表記を見かけました。
 そうそう、osCommerceをいじっているとき、PHPでbase64で送信メールヘッダーのエンコードをしましたっけ。 にもかかわらず、このフォームメールではそんなことをせずに十年近くを過ごしていた方がおかしいといえばおかしい。
 
 ここにアカウント設定済みのメーラーも無いので、しゃーないなー、今晩(今朝)はこれで切り上げるかぁ、と諦めに入りかけた頃、皮肉にもコンビニで買ったパンと甘いカフェオレの糖分が脳みそに到達したようで、いや、納品先のメール受信環境がなんであるかわからない以上、メーラー依存じゃいかんだろ、と妙な向上心がむくむくと湧いてきました。
 
 結果、それまでの日本語処理環境である'jcode.pl'に加えて'mimew.pl'というライブラリを追加。
 それをrequireした後、題名をまずJcodeで変換し、さらにmimewで変換、それを"Subject:"以降に変数として流すことで無事解決。 Safari上のiCloudメールでちゃんと題名表示できました。
 
 それに気を良くしてすっかり夜が明けた道を家に帰り、改めてチェック開始。
 すると案の定、Mac上の"Mail"、iOS上の"メール"では対策前の状態でも題名がちゃんと日本語表示されていたことを確認。 やっぱりなー。
 逆にwebブラウザ上ではMacのみならず、Windows xpのIEでもchromeでも日本語表示されていませんでした。
 
 つまり、webブラウザは厳格に処理し、メーラーは幅を持ってJISエンコーディングでもヘッダ表示をしていた、ということで一件落着。
 
 う〜ん、朝からあおる問題解決ビールは格別の味じゃ♪

|

« WebKitの憂鬱 | トップページ | 2012夏休みの終 »

パソコン・インターネット」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




« WebKitの憂鬱 | トップページ | 2012夏休みの終 »