【发布时间】:2015-03-21 22:52:15
【问题描述】:
希望这个问题有意义。我有一些 C# 代码可以在给定用户名、密码和域的情况下发送电子邮件。我怎么知道它使用的是什么类型的身份验证?
当我查看 SmtpClient.Credentials 属性的 MSDN 页面时,它说如果您使用基本身份验证,则凭据将作为纯文本发送。以下代码是否使用基本身份验证? MSDN 页面:https://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.credentials(v=vs.110).aspx
SmtpClient smtpClient = new SmtpClient();
NetworkCredential cred = new NetworkCredential("username", "password");
MailMessage message = new MailMessage();
MailAddress fromEmail = new MailAddress("from@yourdomain.com");
smtpClient.Host = "mail.mydomain.com";
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = cred;
message.From = fromEmail;
message.Subject = "my subject";
message.IsBodyHtml = true;
message.Body = "hello world!";
message.To.Add("toEmail@anything.com");
smtpClient.Send(message);
【问题讨论】:
-
据我所知,SmtpClient 要求密码需要以纯文本形式传递。但建议是将您的 Smtp 设置存储在 web.config 或 app.config 文件中。 stackoverflow.com/questions/12359445/…。我会说这是基本身份验证。