ハピタス登録で1,000円分になるURL
PHP Mailer超便利
ここからダウンロード。
zipでダウンロードして、自宅サーバに配置した。
phpファイルから require(末尾ソース)して実行したけどエラー。
【SMTP Error: Could not authenticate】が出てしまった。
このサイトの手順どおりに2段階認証を有効にすれば治るんだろうけど、うちの場合はすでに2段階認証は有効にしてるんだよな。
アプリパスワードを設定して解消
2段階認証が有効な状態で【SMTP Error: Could not authenticate】を解消するにはGmailの管理画面からアプリパスワードを設定すればいいらしい。Googleのヘルプどおりにやったら解消した。以下ヘルプの文章丸写し。
アプリパスワードを作成、使用する
重要:アプリパスワードを作成するには、Googleアカウントの2段階認証プロセスが必要です。
2段階認証プロセスを使用していて、ログインしようとすると「パスワードが間違っています」というエラーが表示される場合は、 アプリパスワードを試してみてください。
Googleアカウントに移動します。
[セキュリティ]を選択します。
[Googleへのログイン]で[2段階認証プロセス]を選択します。
ページの下部にある[アプリパスワード]を選択します。
アプリパスワードを使用する場所がすぐにわかる名前を入力します。
[生成]を選択します。
画面上の手順に沿って、アプリパスワードを入力します。
アプリパスワードは、デバイスで生成される16桁のコードです。
[完了]を選択します。
「アプリ名」にテキトーな名前を入れて右下の作成を押して生成されたこのアプリパスワードを自前のアプリ(今回の場合は末尾のPHPソースコード)に入れろということらしい。
入れたので実行してみる。
おっしゃ!メール飛んだ~
ソース
生成されたパスワードは(下記ソースの)16行目に入れている。
めっちゃ簡単。これでサーバfedoraからPHPコマンドやソースでGmailを飛ばせるぅ!
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'PHPMailer/src/Exception.php';
require 'PHPMailer/src/PHPMailer.php';
require 'PHPMailer/src/SMTP.php';
$mail = new PHPMailer(true);
try {
//Gmail 認証情報
$host = 'smtp.gmail.com';
$username = 'test@gmail.com'; // example@gmail.com
$password = 'this isis dumy desu';
//差出人
$from = 'test@gmail.com';
$fromname = 'testphp';
//宛先
$to = 'test@gmail.com';
$toname = 'testout';
//件名・本文
$subject = 'testです';
$body = 'test本文です';
//メール設定
$mail->SMTPDebug = 2; //デバッグ用
$mail->isSMTP();
$mail->SMTPAuth = true;
$mail->Host = $host;
$mail->Username = $username;
$mail->Password = $password;
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
$mail->CharSet = "utf-8";?
$mail->Encoding = "base64";
$mail->setFrom($from, $fromname);
$mail->addAddress($to, $toname);
$mail->Subject = $subject;?
$mail->Body = $body;
$mail->send();
echo '成功';
} catch (Exception $e) {
echo '失敗: ', $mail->ErrorInfo;
}
?>