我正在尝试使用以下非常标准的代码发送电子邮件。但是,我收到了以下错误......
MailMessage message = new MailMessage();
message.Sender = new MailAddress("sen@der.com");
message.To.Add("reci@pient.com");
message.Subject = "test subject";
message.Body = "test body";
SmtpClient client = new SmtpClient();
client.Host = "mail.myhost.com";
//client.Port = 587;
NetworkCredential cred = new NetworkCredential();
cred.UserName = "sen@der.com";
cred.Password = "correct password";
cred.Domain = "mail.myhost.com";
client.Credentials = cred;
client.UseDefaultCredentials = false;
client.Send(message);
邮箱不可用。服务器 回应是:没有这样的 用户在这里。
此收件人电子邮件地址绝对有效。为了使这个帐户工作,我不得不在outlook中做一些特殊的步骤。具体来说,我必须更改帐户设置 - >更多设置 - >传出服务器 - >我的传出服务器需要身份验证和使用相同的设置。我想知道是否还有其他策略。
我认为这里的关键是我的主机是服务器智能,我知道这里的一些人使用它们,所以希望其他人能够通过这个。我确实谈过支持,但他们说我有自己的编码问题:o
答案 0 :(得分:2)
试试这个......
NetworkCredential cred = new NetworkCredential();
cred.UserName = "sen@der.com";
cred.Password = "correct password";
//cred.Domain = "mail.myhost.com";
...除非您使用Kerberos或其他一些复杂的身份验证,否则您不需要提供.Domain
。
修改... 强>
查看我的扩展answer。它有一个如何发送带有身份验证的电子邮件的示例。它也启用了SSL,因此您可能需要删除该部分。
答案 1 :(得分:0)
服务器sen@der.com
上没有名为mail.myhost.com
的邮箱,请检查