カスタムメールフォーム完成

という訳で色んなサーバに乗せて動作確認していたら、添付ファイルのない普通のメールはOKだったもののの、添付ファイルを付けると動かないサーバがあった。
sendmailのパスも問題がなく、一時間程悩みました。
どうやらPHPがセーフモードで動いているのが問題らしい。
普通すぐ気付きますよねー^^;;;;
モンハンのせいで寝不足で気付きませんでした。

セーフモードだと何がまずいか

popen()の使用が制限される

メールをナマで組み立てることができない

safe_mode_exec_dirはPHP_INI_SYST

php.iniかhttpd.confで変更できる

php.iniかhttpd.confの設定はレンタルサーバだと普通変更できない

\(^o^)/オワタ

諸事情で使いたくなかったPEARを使うことに

10分で解決

俺の2時間を返せ

ようやく完成したと思ったら、メールタイトルが長いと文字化けするエラー発生。

何故か最後の方がリフレイン

開いてみると

このメールタイトル「この度はお問い合わせありがとうございます。」をエンコードすると

<?php
$subject = mb_encode_mimeheader($subject, 'ISO-2022-JP');
/*
=?ISO-2022-JP?B?GyRCJDMkTkVZJE8kKkxkJCQ5ZyRvJDskIiRqJCwkSCQmJDQkNiQkGyhC?=
 =?ISO-2022-JP?B?GyRCJF4kOSEjGyhC?=
*/
?>

この時点で改行されてしまってます。
RFCの仕様によると76byte毎に改行が必要らしく、mb_encode_mimeheader()が要らぬ気を利かせていると予想。

なので無理やり改行コードを削除してみる

<?php
$subject = mb_encode_mimeheader($subject, 'ISO-2022-JP');
$subject = str_replace("\r", "", $subject);
$subject = str_replace("\n", "", $subject);
/*
=?ISO-2022-JP?B?GyRCJDMkTkVZJE8kKkxkJCQ5ZyRvJDskIiRqJCwkSCQmJDQkNiQkGyhC?= =?ISO-2022-JP?B?GyRCJF4kOSEjGyhC?=
*/
?>

問題がありそうな気がしないでもないけど、そんな道理、私の無理でこじ開ける!
やっとこさ解決したと思った矢先、

Becky!でメール本文文字化け

それも解決

そしたら今度はThunderbirdでもメール本文文字化け

ようやく終了

お疲れ様でした。

公開と配布ですが、

先方と協議した結果、個人でも商用でもフリーで使えるようにしようかと考え中。
ライセンスは未定。
マニュアルが完成次第公開したいと思います。