ホームページ  >  記事  >  Java  >  資格情報を公開せずにローカルホストから電子メールを送信するにはどうすればよいですか?

資格情報を公開せずにローカルホストから電子メールを送信するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-09 09:28:02391ブラウズ

How to Send Email from Localhost without Exposing Credentials?

Java を使用した電子メールの送信

エラー:

エラー「javax.mail.MessagingException: SMTP に接続できませんでした」ホスト: localhost、ポート: 25; ネストされた例外: java.net.ConnectException: 接続が拒否されました: 接続」が発生します適切に構成されたメール サーバーを使用せずにローカルホストから電子メールを送信しようとした場合。

解決策:

提供されたコードは、Google の SMTP サーバーを使用して電子メールを送信するために機能します。ただし、このソリューションでは、送信プロセスを承認するために Google ユーザー名とパスワードを入力する必要があるため、セキュリティ上の懸念が生じる可能性があります。

GoogleMail API を使用した代替ソリューション:

より安全な方法として、OAuth2 認証を備えた GoogleMail API を使用することをお勧めします。回答セクションに記載されている更新されたコード スニペットは、承認された Gmail サービスを構築し、API を使用してメールを送信する方法を示しています。

ステップバイステップ ガイド:

  1. Google Developer Console で Gmail API を有効にします。
  2. authorize() を実行して認証情報を取得します。
  3. 電子メールの詳細を含む MimeMessage オブジェクトを構築します。
  4. MimeMessage を Gmail メッセージ オブジェクトに変換します。
  5. GoogleMail の Send() メソッドを使用して電子メールを送信します。 class.

GoogleMail を使用する利点API:

  • セキュリティの向上: OAuth2 認証により、コードに Google アカウントの資格情報が保存されなくなります。
  • 最新のアプローチ: GoogleMail API は、最新かつ効率的な送信方法を提供します
  • 追加機能: API は、電子メールの追跡やラベル付けなどの機能を提供します。

追加の注意事項:

  • メール アドレスの読み込み: Utils クラスを使用して、以前に承認された電子メール アドレスを取得できます。
  • 電子メール アドレスの保存: Utils クラスの saveEmail() メソッドを使用して、承認された電子メール アドレスを保存できます。
  • ログアウト: Gmail アカウントからログアウトするには、StoredCredential と電子メール ファイルを削除します。 getGmailDataDirectory() ディレクトリ。

以上が資格情報を公開せずにローカルホストから電子メールを送信するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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