1.メール送信の方法
PHPでメール送信するには2つの関数が用意されている
「mail関数」で宛先、件名、メッセージ、ヘッダーを指定する方法
$to = "to@example.com";
$subject = "TEST";
$message = "This is TEST.\r\nHow are you?";
$headers = "From: from@example.com";
mail($to, $subject, $message, $headers);
「mb_send_mail関数」で宛先、件名、メッセージ、ヘッダーを指定する方法
$to = "to@example.com";
$subject = "TEST";
$message = "This is TEST.\r\nHow are you?";
$headers = "From: from@example.com";
mb_send_mail($to, $subject, $message, $headers);
指定方法は似ているが
「mb_send_mail関数」の方は日本語(2バイト文字)に対応している
こちらの方が使用頻度が高いと思われるので、こちらで進める
2.SーJISで送る場合
<?php
//言語設定、内部エンコーディングを指定する
mb_language("japanese");
mb_internal_encoding("SJIS");
//日本語メール送信
$to = "●●●●●●@gmail.com";
$subject = "SJISで送ります";
$body = "1行目です\n 機種依存文字 ①ⅱ㈱℡\n 拡張文字 髙塚彅﨑德";
$from = "⚪︎⚪︎⚪︎⚪︎@gmail.com";
//ちゃんと日本語メールが送信できます
if (mb_send_mail($to,$subject,$body,"From:".$from))
{
echo "メールが送信されました。";
}
else
{
echo "メールの送信に失敗しました。";
}
?>
行番号 | 説明 |
4〜5 | 言語設定と内部エンコーディングを設定する mb_language 日本語を使用する mb_internal_encoding Shift-JISコードを使用する mb_send_mail関数よりも前に記入する |
8〜11 | 宛先、件名、メッセージ、ヘッダーを指定する $to 宛先メールアドレス $subject 件名 $body メッセージ $from 送信元としてヘーダーに表示(通常メールアドレス) |
14〜21 | mb_send_mail メール送信と後処理 |
3.UTF-8で送る場合
<?php
//言語設定、内部エンコーディングを指定する
mb_language("japanese");
mb_internal_encoding("UTF-8");
//日本語メール送信
$to = "●●●●●●@gmail.com";
$subject = "UTF-8で送ります";
$body = "1行目です\n 機種依存文字 ①ⅱ㈱℡\n 拡張文字 髙塚彅﨑德";
$from = "⚪︎⚪︎⚪︎⚪︎@gmail.com";
//ちゃんと日本語メールが送信できます
if (mb_send_mail($to,$subject,$body,"From:".$from))
{
echo "メールが送信されました。";
}
else
{
echo "メールの送信に失敗しました。";
}
?>
行番号 | 説明 |
4〜5 | 言語設定と内部エンコーディングを設定する mb_language 日本語を使用する mb_internal_encoding UTF-8(Unicode8ビット)を使用する mb_send_mail関数よりも前に記入する |
8〜11 | 宛先、件名、メッセージ、ヘッダーを指定する $to 宛先メールアドレス $subject 件名 $body メッセージ $from 送信元としてヘーダーに表示(通常メールアドレス) |
14〜21 | mb_send_mail メール送信と後処理 |
4.SMTPサーバーの利用
SMTP(Simple Mail Transfer Protocol)を利用する
SMTPサーバーで提供される簡易的なメール送信プロトコル
メリットは、迷惑メールやスパム対策強化になる
SMTPサーバーは多くのメール送信で利用されており、
多くの場合、ブラックリストには登録されていないので
メールの送信や受信する側としても安心できる
レンタルサーバーだと最初から備わっているが
念の為「php.iniのmail function
」を確認しておく
[mail function]
; https://php.net/smtp
SMTP = smtp.xxxxx.com
; https://php.net/smtp-port
smtp_port = 587