3

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

我正在开发一个 android 应用程序,用户只需单击一次即可在不同邮件服务器的各种电子邮件 ID 上发送电子邮件。现在,我的应用程序设计就像用户单击发送邮件时的 . 首先,用户的查询将访问我在远程服务器上运行的 Web 服务。该 Web 服务将在不同服务器的不同 ID 上发送电子邮件。我尝试过使用 ssl 的 java 邮件 API,但是要发送邮件,我们必须将用户名和密码都作为参数传递。现在,我的问题是我应该在我的网络服务器上保存不同用户的密码。因为我认为这将是用户的安全漏洞。而且我认为我们不能使用 java 邮件 API 发送没有密码的邮件。如果是,比如何?我也听说过 open id ,但我认为它只是用于身份验证。或者我可以使用 open id 概念来发送邮件而不存储密码。

4

1 回答 1

2

有几个概念可以帮助你确定你能做什么和不能做什么......

SMTP现状

现在所有的 SMTP 服务器(这些是接收和发送电子邮件的服务器)都使用 ESMTP 标准并且需要用户身份验证。这样做的原因是为了避免使用这些服务器spam代表用户发送。

你能做什么

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

您有两个主要选择:

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

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

使用上述任何一种方法,您都可以降低泄露用户邮件凭据的风险。

问候。

于 2012-12-24T16:37:50.830 回答