PHPMailer で Gmail の SMTP サーバーを使用してメールを送信しようとすると、エラーが発生します。SMTP AUTH is required for message submission on port 587. どのように修正するのですか?
2023-08-25 13:52:32
質問
を使ってメールを送りたいのですが Gmail SMTP サーバを経由して PHPメーラー .
これは私のコードです。
<?php
require_once('class.phpmailer.php');
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->CharSet="UTF-8";
$mail->SMTPSecure = 'tls';
$mail->Host = 'smtp.gmail.com';
$mail->Port = 587;
$mail->Username = '[email protected]';
$mail->Password = 'valid password';
$mail->SMTPAuth = true;
$mail->From = '[email protected]';
$mail->FromName = 'Mohammad Masoudian';
$mail->AddAddress('[email protected]');
$mail->AddReplyTo('[email protected]', 'Information');
$mail->IsHTML(true);
$mail->Subject = "PHPMailer Test Subject via Sendmail, basic";
$mail->AltBody = "To view the message, please use an HTML compatible email viewer!";
$mail->Body = "Hello";
if(!$mail->Send())
{
echo "Mailer Error: " . $mail->ErrorInfo;
}
else
{
echo "Message sent!";
}
?>
と入力しても、次のようなエラーが表示されます。
Mailer Error: SMTP Error: The following recipients failed: [email protected]
SMTP server error: SMTP AUTH is required for message submission on port 587
私のドメインは vatandesign.ir
どのように解決するのですか?
$mail = new PHPMailer(); // create a new object
$mail->IsSMTP(); // enable SMTP
$mail->SMTPDebug = 1; // debugging: 1 = errors and messages, 2 = messages only
$mail->SMTPAuth = true; // authentication enabled
$mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for Gmail
$mail->Host = "smtp.gmail.com";
$mail->Port = 465; // or 587
$mail->IsHTML(true);
$mail->Username = "[email protected]";
$mail->Password = "password";
$mail->SetFrom("[email protected]");
$mail->Subject = "Test";
$mail->Body = "hello";
$mail->AddAddress("[email protected]");
if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message has been sent";
}
上記のコードはテスト済みで、私のところではうまくいきました。
それは、あなたが必要とした
$mail->SMTPSecure = 'ssl';
また、そのアカウントで 2 段階認証がオンになっていないことも、問題の原因となることがあります。
更新情報
mail->SMTPを変更してみてはいかがでしょうか。
$mail->SMTPSecure = 'tls';
一部の SMTP サーバーが接続をブロックしていることに注意する必要があります。
一部の SMTP サーバーは
SSL
(または
TLS
) 接続を使用します。
関連
-
[解決済み】PHP定数「PHP_EOL」はいつ使うの?
-
[解決済み】mysqli_result クラスのオブジェクトを文字列に変換できない
-
[解決済み】DateTimeクラスのオブジェクトを文字列に変換できない
-
[解決済み】stdClassクラスのオブジェクトが文字列に変換されない。
-
[解決済み】Apache + PHPで「ヘッダの前にスクリプトの出力が終了する」件
-
[解決済み】「Fatal error: Class 'MySQLi' not found "を解決するには?
-
[解決済み】メッセージ。Trying to access array offset on value of type null [重複]配列のオフセットにアクセスしようとしています。
-
[解決済み】In_arrayが動作しない。
-
[解決済み] 致命的なエラーです。mysqli_result 型のオブジェクトを使用できません [終了] 。
-
[解決済み] PHP ページから GMail SMTP サーバを使用してメールを送信する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】接続の取得に失敗しました: php_network_getaddresses: getaddrinfo failed: 名前またはサービスが不明
-
[解決済み】PHPで空の値からデフォルトオブジェクトを作成する?
-
[解決済み】新しいPHPMailerはPHPMailerAutoload.phpが必要?
-
[解決済み】php, mysql - データベースへの接続数が多すぎるエラー
-
[解決済み】 libapache2-mod-php7 パッケージが見つからない。
-
[解決済み】mysqli_select_db()は、パラメータ1がmysqliであることを期待し、文字列が与えられる。
-
[解決済み】Wordpressの子テーマのstyle.cssが効かない。
-
[解決済み】mysqli::query(): mysqli をフェッチできない
-
[解決済み] オートロードとは何ですか; spl_autoload、__autoload、spl_autoload_register はどのように使うのですか?
-
[解決済み] PHP product.php?id=1 のような URL を作成する方法