読者です 読者をやめる 読者になる 読者になる

炊きたてのご飯が食べたい

定時に帰れるっていいね。自宅勤務できるっていいね。子どもと炊きたてのご飯が食べられる。アクトインディでは積極的にエンジニアを募集中です。

( php ) 携帯の登録フォームでQdmailを使用してメールを送ったら文字化け 【mb_convert_encoding】

よくつまずくポイント

携帯で登録フォームを作成中。
登録完了時にPCのメールアドレスまで、登録完了のお知らせメールを配信する設計だったので、Qdmailを使用してメールの自動配信設定をしたら、なんと届いたメールが完全に文字化け。
色々と施工錯誤しながらファイルを編集し、ぎりぎり問題解決。ファイルのエンコードに問題があったようだ。
携帯の登録フォームのファイル → shift_jis
qdmail.php → UTF-8
qdsmtp.php → shift_jis
携帯の登録フォームのファイルはシフトJISで作成していた為、件名や本文を、メール配信前にUTF-8に変換したら、文字化けが解消されました。

$mailaddress = 'mailaddress@test.jp';
$fromaddress = 'fromaddress@type.jp';
$subject = '件名';
$body ="メール本文";
$from = '文字化け事務局';
$mail = new Qdmail();
$mail -> smtp(true);
$param = array('host'=>'********', 'port'=> 25, 'from'=>$fromaddress, 'protocol'=>'SMTP', 'user'=>'', 'pass'=>'');
$mail -> smtpServer($param);
//文字列変換(モバイル用)
$subject = mb_convert_encoding($subject, "UTF-8", "SJIS");
$body = mb_convert_encoding($body, "UTF-8", "SJIS");
$from = mb_convert_encoding($from, "UTF-8", "SJIS");
$mail ->to($mailaddress,'');
$mail ->subject($subject);
$mail ->from($fromaddress, $from);
$mail ->text($body);
$return_flag = $mail ->send();

今後は、UTF-8での携帯サイトの作成にチャレンジしていこう。携帯のエンコード問題は対応がホント大変です…。