プログラム言語のPHPにはメール送信用の関数が用意されていて、かなりシンプルなプログラムで電子メール送信をすることができます。
この記事ではPHPで電子メールを送信する方法についてサンプルプログラムを提示して解説していきたいと思います。ご興味のある方はぜひ参考にしてみて下さい。
電子メールを送信する方法
PHPで電子メールを送信するには、mail 関数を使用します。ただし、mail 関数は日本語などのマルチバイトに対応していないため、代用としてmb_send_mail 関数を使用するのが通常です。
引数や戻り値など、使い方はどちらの関数とも同じです。それでは、電子メールを送信するサンプルプログラムを見ていきたいと思います。
$to = "to@example.com";
$subject = "テストメールの件名";
$message = "This is TEST.";
$headers = "From: from@example.com";
mb_send_mail($to, $subject, $message, $headers);
プログラム解説
このプログラムについて解説します。
この部分では送信先の宛先を変数「$to」に設定しております。この例では架空のメールアドレスを指定しておりますが、実際は送信先のメールアドレスを指定してください。
ここではメールのタイトルを指定して変数「$subject」に格納しております。メールソフトなどを使用すると、送信者と件名の一覧が表示されますね。そこに表示される件名です。
メールの内容を変数「$message」に指定しております。改行をする場合は改行コード「\r\n」を入れます。
ここでmb_send_mail 関数を使用して電子メールを送信しております。
mb_send_mail 関数は第一引数に「宛先」、第二引数に「件名」、第三引数に「メールの内容」、第四引数には送信元などメールのヘッダーを指定します。メール送信がうまく行った場合は「true」、失敗した場合は「false」が返却されます。
mb_send_mail 関数は「CC」や「BCC」を指定することもできます。その場合は第四引数は次のように指定します。
$headers = "From: from@example.com";
$headers .= "\r\n";
$headers .= "Cc: cc@sexample.com";
$headers .= "\r\n";
$headers .= "Bcc: bcc@sexample.com";
PHPMailer を使って電子メールを送信する
PHPMailerライブラリを使用すれば、SMTPサーバーを利用してメールを送信することができます。SMTPサーバーを利用すれば、より安定的に大量のメールを送信することができます。
PHPMailerライブラリを使用する簡単なサンプルプログラムを紹介しておきます。事前にPHPMailerライブラリのインストールが必要であり、SMTPサーバーのドメインやポート番号などのちょっとした専門的な知識が必要になってきますので、プログラムの詳細な解説は割愛します。こういった方法もあるということを覚えておいてください。
require "PHPMailer/PHPMailer.php";
$mail = new PHPMailer();
$mail->isSMTP();
$mail->Host = "smtp.example.com";
$mail->Port = 25;
$mail->SMTPAuth = true;
$mail->Username = "username";
$mail->Password = "password";
$mail->setFrom("from@example.com");
$mail->addAddress("to@example.com");
$mail->Subject = "件名";
$mail->Body = "This is TEST.";
$mail->send();
ホストやポート番号、ユーザーネーム、パスワードなどは環境によって異なります。ご自身の環境によって適切な値を設定するようにしてください。
まとめ
PHPで電子メールを送信する方法について解説してきましたが、いかがでしたでしょうか。
SMTPサーバーを使用する場合は、PHPMailerライブラリを使用して少し複雑になりますが、mail やmb_send_mail 関数使った方法は意外と簡単に感じたことと思います。
コメント