概要
サクラレンタルサーバーで動かしてるLaravelのフレームワークからメールが送信したくなったのでその時実装したものの紹介
方法
Laravelのフレームワークでやるやり方がいくつかあったんですけど、レンタルサーバー側でcomposerのupdateができなくなってしまっていて、それに頼ることができなくなったので素のPHPの書き方をベースに書くことにした。
書き方
最終的に書いたコードがこちら
mb_language("uni");
mb_internal_encoding("UTF-8");
$to = "送信したいメールアドレス"
$subject = "件名"
$header = "Content-Type:text/plain;charset=UTF-8\r\n";
$header .= "From: 送信元メールアドレス\r\n";
$param = "-f 送信元メールアドレス";
$message = "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\r\n";
$message .= "XXXX会員 仮登録完了のおしらせ\r\n";
$message .= "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\r\n";
$message .= "\r\n";
$message .= "この度は、XXXへご登録いただきまして誠にありがとうございます。\r\n";
mb_send_mail($to, $subject, $message, $header, $param);
詰まった部分
日本語が使えない
$to = "送信したいメールアドレス"
$subject = "件名"
$header = "Content-Type:text/plain;charset=UTF-8\r\n";
$header .= "From: 送信元メールアドレス\r\n";
$param = "-f 送信元メールアドレス";
$message = "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\r\n";
$message .= "XXXX会員 仮登録完了のおしらせ\r\n";
$message .= "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\r\n";
$message .= "\r\n";
$message .= "この度は、XXXへご登録いただきまして誠にありがとうございます。\r\n";
mb_send_mail($to, $subject, $message, $header, $param);
最初上記の状態で記載していたのですが日本語全く表示されなかった。ので下記の記述を追加
mb_language("uni");
mb_internal_encoding("UTF-8");
$to = "送信したいメールアドレス"
$subject = "件名"
$header = "Content-Type:text/plain;charset=UTF-8\r\n";
$header .= "From: 送信元メールアドレス\r\n";
$param = "-f 送信元メールアドレス";
$message = "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\r\n";
$message .= "XXXX会員 仮登録完了のおしらせ\r\n";
$message .= "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\r\n";
$message .= "\r\n";
$message .= "この度は、XXXへご登録いただきまして誠にありがとうございます。\r\n";
mb_send_mail($to, $subject, $message, $header, $param);
改行されなかった
最初改行の文字列すら表示されなかったのですが原因が
$header = "Content-Type:text/plain;charset=UTF-8\r\n";
こちらのheader部分が
$header = "Content-Type:text/html;charset=UTF-8\r\n";
htmlを指定したせいでした