What I want to do is similar to this question. However that solution uses Settings.Default.* which as best as I can tell doesn't exist.
For a Windows Forms (C#) app, how can I send an email usign the local email client and credentials so I don't have to prompt the user for anything. I definitely don't want to ask the user for their password (and more to the point then have to save that as this will be for a service sending scheduled emails).
thanks - dave
答案 0 :(得分:0)
您可以在App.config中添加以下配置
<system.net>
<mailSettings>
<smtp from="donotreply@yourCompany.com" deliveryMethod="Network">
<network host="mail.yourCompany.com" userName="sender@yourCompany.com" password="yourPassword" port="26" />
</smtp>
</mailSettings>
</system.net>
然后,在Send方法中,使用SMTP客户端的参数较少的构造函数。您的发送方法将变成这样的
public void Send(IEnumerable<string> to, string subject, string message)
{
var client = new SmtpClient();
var mailMessage = new MailMessage();
mailMessage.IsBodyHtml = true;
mailMessage.Bcc.AddRange(to.Select(email => new MailAddress(email)));
mailMessage.Subject = subject;
mailMessage.Body = message;
client.Send(mailMessage);
}
如果在配置中存储密码是一个问题,那么您只需加密它并在您的应用程序代码中使用解密器。