【FuelPHP】PHPMailerを使ってGmailのSMTP経由でメールを送信する
1.PHPMailerをcomposerでインストール
composer.jsonに下記の行を追加します。
{ "require": { "phpmailer/phpmailer": "~5.2" ← 追加する行 }, }
追加したら、composerをアップデートして、インストールします。
そうするとvendorディレクトリ配下にphpmailerディレクトリが追加されます。
下記参考
packagist.org
2.設定
下記のように記述します。
<?php $to = 'sample@test.com'; // 宛先 $subject = "メールの件名"; $body = "メール本文"; $from = "from@test.com"; // 送信元 $smtp_user = "gmailアカウント@gmail.com"; $smtp_password = "gmailのパスワード"; $mail = new PHPMailer(); $mail->IsSMTP(); $mail->SMTPDebug = 1; // debugging: 1 = errors and messages, 2 = messages only $mail->SMTPAuth = true; $mail->CharSet = 'UTF-8'; $mail->SMTPSecure = 'tls'; $mail->Host = "smtp.gmail.com"; // 外部SMTPサーバーのホスト名(gmail) $mail->Port = 587; // 外部SMTPのポート番号 $mail->IsHTML(false); $mail->Username = $smtp_user; // gmailのアカウント名 $mail->Password = $smtp_password; // gmailのパスワード $mail->SetFrom($smtp_user); $mail->From = $from; // Fromのメールアドレス $mail->Subject = $subject; // 件名 $mail->Body = $body; // 本文 $mail->AddAddress($to); // Toのメールアドレス if( ! $mail -> Send() ){ $message = "Message was not sent<br/ >"; $message .= "Mailer Error: " . $mail->ErrorInfo; } else { $message = "Message has been sent"; } return $message;
以上で、送信ができます。
対処法
メールが送信できない時の対処法です。
1.「安全性の低いアプリのアクセス」をオンにする
こちらにアクセスして、「オンにする」を選択します。
https://www.google.com/settings/security/lesssecureapps
2. https://accounts.google.com/DisplayUnlockCaptcha よりGoogleアカウントへのアクセスを許可する