Min*_*amy 6 c# asp.net smtpclient
我想和SmtpClient班级一起发送邮件.
这是我使用的代码:
SmtpClient smtpClient = new SmtpClient("Host",25);
NetworkCredential basicCredential =
new NetworkCredential("UserName", "Password");
MailMessage message = new MailMessage();
MailAddress fromAddress = new MailAddress("me@domain.com");
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = basicCredential;
message.From = fromAddress;
message.Subject = "test send";
message.IsBodyHtml = true;
message.Body = "<h1>hello</h1>";
message.To.Add("mail@domain.com");
smtpClient.Send(message);
Run Code Online (Sandbox Code Playgroud)
但它总是抛出异常:
服务器提交了协议违规服务器响应:UGFzc3dvcmQ6
我找不到原因.如果有人遇到这样的事情,请告诉我该怎么做.
我遇到了同样的问题,我的意思是设置用户@域而不是用户
旧代码
new NetworkCredential("UserName@domain.com", "Password");
Run Code Online (Sandbox Code Playgroud)
新代码
new NetworkCredential("UserName", "Password");
Run Code Online (Sandbox Code Playgroud)
这对我来说就像SmtpClient身份验证在某种程度上是不合时宜的.
一些认证机制是"客户端:用户名和密码,服务器要求身份验证:成功/失败"别人"客户:请输入帐号,服务器要求身份验证:要求密码,客户端:与回复密码,服务器:成功/失败".
看起来SmtpClient期待前者,而你的服务器期待后者.
正如dave goa建议的那样,会话日志会告诉你SmtpClient尝试使用什么auth机制,但它也会说服务器支持哪种auth机制.
通常发生的是服务器提供了许多验证选项,客户选择它将使用哪一个.那里的行为应该由所选择的协议决定.我希望SmtpClient课程能为你解决这个问题,但我担心我从未使用过那个特定的课程.
还记得 - 如果你打算在这里发表日志,更改为一次性密码登录会话之前,为Base64编码的明文密码可以平凡变回人类可读的明文密码.
| 归档时间: |
|
| 查看次数: |
13883 次 |
| 最近记录: |