PHPMailerの使い方(ローカル環境と本番環境)
ローカル環境でPHPMailerを使う
前提としてサーバーからメールを、迷惑メールとして分類されずに送るには、SMTP認証というものが必要です。SMTP認証とは、SMTPサーバでユーザーIDとパスワードを認証し、認証が確認された場合のみ、メールの送信を許可するという、迷惑メール発信規制手法の一つです。
参考サイト ↓
www.tiki.ne.jp
PHPMailerを使って、ウェブサイトからメールを送る際も、認証が必要です。しかしローカル環境では、いちいちメールサーバーを立てて、送信するのは面倒くさいと思います。そこで、Mailtrapというサービスを使います。無料で与えられたSMTPの情報でメールを送信でき、送信されたメールはMailtrapのページに届いて確認することができます。まずはMailtrapのアカウントを作ります。すると認証情報が表示されるので確認し、「My Inbox」→「Integrations」の「PHPMailer」を選択してコードをコピーして、以下のようにPHPMailerのコードを書いてメールを送信してください。届いたメールはMailTrapにログインしたページの「My Inbox」に届いています。
(「PHPMailer-master」ファルダとしてソースコードをダウンロードした場合)
<?php use PHPMailer\PHPMailer\PHPMailer;use PHPMailer\PHPMailer\Exception; require 'PHPMailer-master/src/Exception.php'; require 'PHPMailer-master/src/PHPMailer.php'; require 'PHPMailer-master/src/SMTP.php'; $mail->isSMTP(); $mail->Host = 'smtp.mailtrap.io'; $mail->SMTPAuth = true; $mail->Port = 2525; $mail->Username = 'SMTPサーバーのユーザ名'; $mail->Password = 'SMTPサーバーのパスワード'; //Recipients $mail->setFrom('送り元アドレス', 'Mailer'); $mail->addAddress('送り先アドレス', 'Mr To'); //Content $mail->CharSet = 'UTF-8'; //文字化け防止 $mail->Subject = '件名'; $mail->Body = '内容'; //送信 $mail->send(); ?>
本番環境でPHPMailerを使う(さくらのレンタルサーバーの場合)
さくらのレンタルサーバーのコントロール画面に入り、メールアドレスを作ります。コントロール画面で「メール」→「メール一覧」→「新規追加」→「アドレス入力」で新しくアドレスが追加できます。さくらの場合は、メールアドレスは「新しく追加したアドレス+@初期ドメイン」となります(「ドメイン/SSL」から参照可能)。初期ドメインとメールアドレス(+メールアドレスのパスワード)が準備できたら以下のようにコードを書いて、メールを送信します。
<?php use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; require 'PHPMailer-master/src/Exception.php'; require 'PHPMailer-master/src/PHPMailer.php'; require 'PHPMailer-master/src/SMTP.php'; $mail = new PHPMailer(true); try { //ホスト $host = 'さくらのレンタルサーバの初期ドメイン'; //メールアカウントの情報(さくらのレンタルサーバで作成したメールアカウント) $user = 'さくらのメールアドレス'; $password = 'メールアドレスのパスワード'; //差出人 $from = 'さくらのメールアドレス'; $from_name = '送り元の名前'; //宛先 $to = "送信先のメールアドレス"; $to_name = '送信先の名前'; $message = "内容" $mail = new PHPMailer(true); try { //$mail->SMTPDebug = 2; //デバッグ用 $mail->isSMTP(); $mail->SMTPAuth = true; $mail->Host = $host; $mail->Username = $user; $mail->Password = $password; $mail->SMTPSecure = 'tls'; $mail->Port = 587; $mail->CharSet = "utf-8"; $mail->Encoding = "base64"; $mail->setFrom($from, $from_name); $mail->addAddress($to, $to_name); //Content $mail->CharSet = 'UTF-8'; //文字化け防止 $mail->Subject = '件名'; $mail->Body = $message; //送信 $mail->send(); ?>