我正在尝试制作一个发送电子邮件的简单应用程序。我使用MailMessage
和SmtpClient
类。 SmpClient
需要登录名和密码才能运行。
答案 0 :(得分:6)
是的,在应用程序的任何位置以明文形式存储密码是不安全的。不要这样做!
相反,您应该将密码 加密 存储在App.config文件中(或配置文件中的其他位置,例如machine.config):
Encrypting and Decrypting ApplicationConfigSections
或者,您可以在运行时向用户询问凭据。
如果您想避免明确提供密码,可以通过Windows身份验证对当前登录的用户进行身份验证。为此,您可以使用SmtpClient.UseDefaultCredentials
发送邮件。当然,这仅在SmtpServer识别用户窗口凭证时有效。
如果您希望免受中间人攻击和数据包嗅探,则应使用SSL传输身份验证数据。您可以enabling SSL in the configuration执行此操作,也可以自行设置属性:SmtpClient.EnableSsl
。 (.NET> = 4.0)