如何存储电子邮件的密码并使用它来发送电子邮件?

How to store the password of an email and use it to send an email?

我知道如何用 C# 发送电子邮件。为此,我需要知道用户的用户名和密码。

我对如何使用散列+盐来存储密码有基本的了解,以存储密码的散列值,因此每次应用程序获取密码时,都进行散列运算并与生成的哈希。这对登录很有用,因为用户输入密码就可以使用该应用程序。

但是,为了发送电子邮件,我想避免用户必须输入电子邮件的密码,所以登录的解决方案不适用于这种情况。我想以某种方式将密码存储在数据库中,应用程序可以获取它。问题是,如果我存储散列密码,应用程序无法获取密码,因为散列以一种方式加密。

所以我想知道我可以使用哪些替代方法以安全的方式将密码存储在数据库中,并且应用程序可以获取它来发送电子邮件。

谢谢。

理想情况下,服务使用默认或通用电子邮件 ID 发送电子邮件。但是,在你的情况下,如果许多用户正在使用服务发送电子邮件,你应该要求用户(第一次)登录它然后你可以生成一个会话(在指定的时间段内)并基于此你应该发送电子邮件。一旦会话密钥过期,用户应该被强制重新登录。 因此,在成功登录后,将为每个用户生成一个会话,他们将使用此服务来发送电子邮件。

因此,这不需要在任何地方保存密码,因为以原始形式或任何其他可以检索回来的形式保存密码是不可取的。