首页  >  文章  >  Java  >  如何从本地主机发送电子邮件而不暴露凭据?

如何从本地主机发送电子邮件而不暴露凭据?

Linda Hamilton
Linda Hamilton原创
2024-11-09 09:28:02416浏览

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 开发者控制台中启用 Gmail API。
  2. 通过运行authorize() 获取凭据方法。
  3. 构造一个包含电子邮件详细信息的 MimeMessage 对象。
  4. 将 MimeMessage 转换为 Gmail Message 对象。
  5. 使用 GoogleMail 的 Send() 方法发送电子邮件类。

使用 GoogleMail 的好处API:

  • 提高安全性: OAuth2 授权可确保您不会在代码中存储 Google 帐户凭据。
  • 现代方法:GoogleMail API 提供了一种现代且高效的发送方式
  • 附加功能: API 提供电子邮件跟踪和标签等功能。

附加说明:

  • 加载电子邮件地址: loadEmail() Utils 类中的方法可用于检索之前授权的电子邮件地址。
  • 保存电子邮件地址: Utils 类中的 saveEmail() 方法可用于保存授权的电子邮件地址.
  • 注销:要注销 Gmail 帐户,请删除 StoredCredential 和电子邮件文件getGmailDataDirectory() 目录。

以上是如何从本地主机发送电子邮件而不暴露凭据?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn