使用Java邮件API或任何其他语言发送批量邮件,而无需在服务器上存储用户密码



我不知道该问题的适当标题是什么,但是我的问题的摘要在下面。

我正在开发一个Android应用程序,用户只需单击1个单击,必须在不同的邮件服务器的各种电子邮件ID上发送电子邮件。现在,我的应用程序设计就像用户单击发送邮件时一样。首先,用户的查询将点击我在远程服务器上运行的Web服务。此Web服务将在不同服务器的不同ID上发送电子邮件。我尝试使用SSL尝试使用Java邮件API,但是要发送邮件,我们必须将用户名和密码作为参数传递。现在,我的问题是我应该在Web服务器上保存不同用户的密码。因为我认为这将是用户的安全漏洞。而且我认为我们无法使用Java Mail API发送没有密码的邮件。如果是的,那么如何?我也听说过开放ID,但这只是用于身份验证,或者我可以使用打开ID概念也可以发送邮件而无需存储密码。如果是的?

有几个概念,可以帮助您确定自己可以做什么,不能做什么...

SMTP当前情况

如今,所有SMTP服务器(这些是接收和发送电子邮件的服务器)使用ESMTP标准并需要用户身份验证。其原因是避免使用这些服务器代表用户发送spam

您可以做什么

因此,作为起点,要访问受信任的电子邮件服务器,您需要有效的用户凭据。

您有两个主要选择:

  1. 使用您自己的电子邮件帐户,并带有您的凭据,并将字段replyTosentFrom设置为用户电子邮件帐户。最终结果可能取决于接收电子邮件的人使用的电子邮件提供商和电子邮件客户端,因为其中一些可能将消息分类为spam

  2. 使用用户自己的凭据。您在问题中说,用户首先连接到服务器,因此您可以在那时请求用户登录和密码,而您无需将其存储在服务器中。为了避免每次键入密码,用户仅一次在应用程序中输入登录和密码,您可以将其存储在本地(最好是加密的),并且每次发送凭据(最好再次加密),用户可以连接到服务器发送服务器电子邮件。

使用上述任何方法,您都在降低披露用户邮件凭据的风险。

问候。

最新更新