公開日:2015/02/04
PHPで日本語メールを送信しようとするとめんどくさい。
何も考えずにてきとーに書くと文字化けする。
毎回書くのはめんどうなのでメールの関数を自作してみた。
関数とその使い方をメモする。
mail_send()関数
メールを送信する関数。
function mail_send($mail_to,$title,$message) {
$ini = parse_ini_file('mail.ini');
$mailadress_from = $ini['mailaddress_from'];
$name_from = $ini['name_from'];
mb_language('ja');
mb_internal_encoding('UTF-8');
return mb_send_mail(
$mail_to,
$title,
$message,
'From:'.mb_encode_mimeheader($name_from).'<'.$mailadress_from.'>'
);
}
送信先メールアドレスと件名と本文を渡す。
メール送信元は毎回変わることはないのでparse_ini_file()関数でiniファイルで設定できるようにしてみた。
mb_language()関数で日本語を指定。
mb_internal_encoding()関数で文字コードを指定。
mb_send_mail()関数でメールを送信。
送信元に日本語の名前をつける場合にはmb_encode_mimeheader()関数で囲うのを忘れずに。
mb_send_mail()関数の戻り値がそのまま戻り値になる。
iniファイルの書き方
mail_send()関数の送信元を設定するiniファイル。
mailaddress_from='test@smartllc.jp'
name_from='合同会社スマート'
メールアドレスと日本語の名前を設定してやる。
使い方
mail_send()関数の使い方。
try {
if (!mail_send('test@smartllc.jp','件名','本文')) {
throw new Exception('mail_send failed');
}
echo '送信しました。';
} catch (Exception $e) {
echo '送信できませんでした。';
}
送信先メールアドレスと件名と本文を渡すだけ。
これでもうメール送信はハマらない(`・ω・´)シャキーン