ホームページ >バックエンド開発 >C++ >アプリケーションから電子メールを送信すると「SMTP サーバーには認証が必要です」というエラーが表示されるのはなぜですか?

アプリケーションから電子メールを送信すると「SMTP サーバーには認証が必要です」というエラーが表示されるのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-17 22:47:10233ブラウズ

Why Am I Getting an

Google アカウントの SMTP サーバー認証エラーのトラブルシューティング

問題:

ローカル アプリケーションから SMTP 経由で電子メールを送信すると、「SMTP サーバーは安全な接続が必要か、クライアントが認証されませんでした。サーバーの応答は次のとおりです: 5.5.1 認証が必要です。」というエラーが発生します。 SSL が有効で認証情報が正しい場合でも、問題は解決しません。

解決策:

このエラーは通常、Google アカウントの「安全性の低いアプリへのアクセス」設定が無効になっていることを示します。 修正方法は次のとおりです:

  1. Google アカウントにアクセスします。
  2. アカウントに移動します。 セキュリティ > 安全性の低いアプリ アクセス.
  3. 安全性の低いアプリへのアクセス オプションを有効にします。

コード例 (C#):

次の C# コードは、安全性の低いアプリ アクセスを有効にした後に電子メールを送信する方法を示しています。

<code class="language-csharp">using System.Net.Mail;
using System.Net;

MailMessage mail = new MailMessage();

mail.From = new MailAddress("your_email@gmail.com"); // Replace with your email
mail.To.Add("recipient_email@example.com"); // Replace with recipient's email
mail.Subject = "Test Email";
mail.Body = "Test Email Content";
mail.Priority = MailPriority.High;

SmtpClient client = new SmtpClient();

client.Credentials = new NetworkCredential("your_email@gmail.com", "your_password"); // Replace with your credentials
client.Host = "smtp.gmail.com";
client.Port = 587;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.EnableSsl = true;
client.UseDefaultCredentials = false;

client.Send(mail);</code>

重要な考慮事項:

  • 安全性の低いアプリ アクセスを有効にすると、古いアプリケーションの接続が可能になりますが、OAuth 2.0 などの代替手段よりも安全性が低くなります。 セキュリティを強化するために、OAuth 2.0 への移行を検討してください。
  • Google は将来、安全性の低いアプリへのアクセスを無効にする可能性があるため、長期的な安定性を確保するには、より安全な認証方法を推奨します。

以上がアプリケーションから電子メールを送信すると「SMTP サーバーには認証が必要です」というエラーが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。