是的,将密码以纯文本形式存储在应用程序的任何位置是不安全的.不要这样做!
相反,您应该将加密的密码存储在App.config文件中(或者配置文件中的其他位置,例如machine.config):
加密和解密ApplicationConfigSections
或者,您可以在运行时向用户询问凭据.
如果要避免显式提供密码,可以通过Windows身份验证对当前登录的用户进行身份验证.为此,您可以使用SmtpClient.UseDefaultCredentials发送邮件.当然,这仅在SmtpServer识别用户窗口凭据时有效.
如果您希望免受中间人攻击和数据包嗅探,则应使用SSL传输身份验证数据.您可以通过在配置中启用SSL或仅自行设置属性来执行此操作:SmtpClient.EnableSsl.(.NET> = 4.0)