スキップしてメイン コンテンツに移動

[PHP]メールのエンコード処理

PHPで受けたメールの変換について少し調べたのでまとめておきます。



メールのタイトル

$subject = mb_decode_mimeheader($str)

S-JISとかISO-2022-JPでエンコードされている事が多いので
mb_convert_encoding(mb_decode_mimeheader($str), "UTF-8");

でいけるかも(mb_convert_encodingはautoなので環境依存です。ケースバイケースでエンコードを指定してください)。


Quoted-printable(QP)のメール変換


mb_convert_encoding(quoted_printable_decode($str), "UTF-8");

文字化けしている場合は

mb_convert_encoding(quoted_printable_decode($str), "UTF-8", "ISO-2022-JP");

とするとうまくいく事が多い。

Linux上でメールの内容をgrepしようと思ったらQPエンコードだったので、QPのデコードをするPHPを作ってそれをシェルで呼び出すという事をしました。
ハマったのは、ディスプレイに表示する場合はquoted_printable_decode($str)で読める状態にエンコードするけれど、それをファイルに落とすと文字化けしているという状況。
いい加減ISO-2022-JPエンコードから脱却したいと考えているけれど、未対応のメーラー対策も考えるとエンコードした方が角が立たないんだな。


コメント

このブログの人気の投稿

[VB.NET]オレオレ証明書でSSL通信するための短絡的な解決法

VB.NETソフトウェアでサーバーと通信することはよくある事だと思いますが、最近はHTTPを使って明けっ広げに刺しに行くよりHTTPSを使って暗号化してこそこそやった方が時代の流れに即した感じですよね(違うか)。 いちいちテスト環境でSSL証明書を用意するのも面倒だということで、セキュリティ的には全くよろしくない方法で迂回できるので紹介します。

[JS]Canvasでよく使う描画テクまとめ

HTMLで画像をいじくりたい時は、canvasを利用して編集するのは一般的ですが、WindowsストアアプリではHTML+CSS+JSでのアプリ開発ができる事もあって、簡単な画像編集であれば、C#やVBを使うより分かりやすいし資料が多く、C++でDirectXをガリガリ書くよりお手軽。入出力もファイルピッカーを使えば簡単に実装できます。今回は、Windowsのコードではなく、Canvasを利用する時のJavaScriptを使いどきに合わせてまとめていきます。

curl の基本的な使い方 -設定編-

今回のcurl TIPSは、curlをより日常的に使っていくためのHow toです。curlには、数多くのオプションが用意されていて、それらを組み合わせる事で様々な事が楽になるでしょう。サービス監視の自動化などにはまさにcurlの得意分野です。 今回は、curlを更に自分のものにしていくために大事なカスタマイズの部分を解説します。