カスタムメールフォーム完成
という訳で色んなサーバに乗せて動作確認していたら、添付ファイルのない普通のメールは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でもメール本文文字化け
↓
ようやく終了
お疲れ様でした。
公開と配布ですが、
先方と協議した結果、個人でも商用でもフリーで使えるようにしようかと考え中。
ライセンスは未定。
マニュアルが完成次第公開したいと思います。