【发布时间】:2019-02-03 13:44:47
【问题描述】:
我正在测试从 C# 发送电子邮件,因为它使用以下代码:
MailMessage message = new MailMessage();
message.To.Add("user@gmail.com");
message.From = new MailAddress("me@server.com");
message.Subject = "Test subject";
message.Body = "Test body";
SmtpClient client = new SmtpClient("server");
client.Timeout = 10000;
client.EnableSsl = true;
client.UseDefaultCredentials = false;
NetworkCredential credentials = new NetworkCredential("me@server.com", "CorrectPassword");
client.Credentials = credentials;
try
{
client.Send(message); // OK
}
catch (Exception ex)
{
MessageBox.Show("Exception caught in CreateTestMessage2(): {0}", ex.ToString());
}
然后,尝试开始控制连接中断和主要是无效密钥的异常,但注意即使使用错误的密钥,邮件仍然发送。
NetworkCredential credentials = new NetworkCredential("me@server.com", "BadPassword");
client.Credentials = credentials;
try
{
client.Send(message); // OK, the email has been sent
}
catch (Exception ex)
{
MessageBox.Show("Exception caught in CreateTestMessage2(): {0}", ex.ToString());
}
如何禁用自动保存凭据?或者,如何删除存储的凭据?
【问题讨论】:
-
如果您根本不设置凭据会发生什么,它还会发送吗?
-
是的,邮件还是发了,挺奇怪的
-
关于这个stackoverflow.com/a/27896967,多次使用
SmtpClient.UseDefaultCredentials = false可能对你有帮助。 -
@Angel - 如果它回答了您的问题,请考虑接受提供的答案,因为它可能会在未来帮助其他人。
标签: c# email system.net.mail