从Java桌面应用程序发送电子邮件

从Java桌面应用程序发送电子邮件,java,email,jakarta-mail,Java,Email,Jakarta Mail,为了实现从Java桌面应用程序(跨平台、Linux、Win和Mac)发送纯文本电子邮件的功能,我正在研究最好的方法是什么 基本上,我正在探索javax.mailapi,我正在考虑以下三个选项 通过javax.mail API使用gmail SMTP服务器 这个选项是最容易实现的,但是我认为在安全方面,它不是一个好的选项,因为SMTP服务器密码需要嵌入到代码中(任何jar文件都可以反编译,因此有暴露密码的危险) 通过javax.mail API使用本地SMTP服务器 从安全角度来看,这是可以的。然

为了实现从Java桌面应用程序(跨平台、Linux、Win和Mac)发送纯文本电子邮件的功能,我正在研究最好的方法是什么

基本上,我正在探索javax.mailapi,我正在考虑以下三个选项

  • 通过javax.mail API使用gmail SMTP服务器

    这个选项是最容易实现的,但是我认为在安全方面,它不是一个好的选项,因为SMTP服务器密码需要嵌入到代码中(任何jar文件都可以反编译,因此有暴露密码的危险)

  • 通过javax.mail API使用本地SMTP服务器

    从安全角度来看,这是可以的。然而,它需要一台运行SMTP服务器的客户机,我不能假设我的所有用户都运行SMTP服务器

  • 通过使用应用程序实例化SMTP服务器的javax.mail API

    可移植性和安全性这似乎是最好的选择。然而,这看起来也是一个很大的工作,可能说起来容易做起来难,因此我不确定这是否是一个可行的选择


  • 显然,这三个选项中没有一个是真正令人满意的,我想知道我是否遗漏了一些明显的东西,这就是我提出问题的原因。是否有任何合理的方法(关于安全性、可移植性和所需工作量)来实现此功能。

    您不能在大多数家庭ISP上运行SMTP服务器。您应该与自己的服务器对话并验证请求,以防止垃圾邮件发送者。。这可能有助于解决选项1中的安全问题。这是一个有趣的问题,关于第一项,我认为您可以加密属性文件,以便在电子邮件的身份验证步骤中隐藏API密钥和机密。