PHPのメール送信ライブラリであるqdmailを使ってメール送信する際、テキストエリア(恐らくボックスも)に改行なしの文字をずらっと並べつつメール送信すると文字化けしたものが送られるという事象がありましたので共有します。
#原因
どうにもSMTPプロトコルでは1行1024文字と定められているようで、sendmailなどの送信サーバのデフォルト設定では
1024文字で自動改行が入ることが多いらしいですが、Qdmailでは回避不可能ってことだったようです。。
#対処
だがしかしQdmailにはインテリジェントワードラップてのがあって特定文字列幅で折り返しをしてくれる機能があるらしい、
実際に見てみると確かにソレっぽい記述がありました。
//---------
// wordwrap
//---------
var $wordwrap_allow = false;
var $wrap_prohibit_allow = false;
var $wordwrap_length= 45 ;
デフォルトではfalseだったっぽいですね。。
さらに45文字。。
こちらを
//---------
// wordwrap
//---------
var $wordwrap_allow = true;
var $wrap_prohibit_allow = false;
var $wordwrap_length= 45;
にしたら文字化けなく送信されました、
もちろん上記で設定した文字数で折り返しはされます。
ただ、折り返すのはメール自体全てになります。
項目毎ではないです。
なので、極端な話、数値を10などとしたメールは
あああ様
この度はXXXへのお
問い合せありがとうご
ざいました。
内容を確認後、担当者
よりご連絡させていた
だきます。
テスト文言テスト文言
テスト文言
-------------------
------
※このメールには返信
できません。
ってのがきます。
勘違いせぬよう。
基本こいつある程度の長さでtrueにしててもいいんじゃないですかね。