asp.net – 从web.config中膨胀时,SmtpClient不会进行身份验证
发布时间:2020-05-24 15:44:23 所属栏目:asp.Net 来源:互联网
导读:使用system.net/mail web.config设置配置我的SmtpClient时,它无法发送电子邮件,其中“协议错误”最好由Base64编码和身份验证问题描述: 例: 使用以下配置 system.net mailSettings smtp from=email@server.com network host=server
|
使用system.net/mail web.config设置配置我的SmtpClient时,它无法发送电子邮件,其中“协议错误”最好由Base64编码和身份验证问题描述: 例: <system.net>
<mailSettings>
<smtp from="email@server.com">
<network host="servermail.outsourced.com"
port="2525"
defaultCredentials="false"
userName="username"
password="password"/>
</smtp>
</mailSettings>
</system.net>
和守则: var tmp = new SmtpClient();
MailMessage msg = new MailMessage();
msg.Subject = "test";
msg.From = new MailAddress("me@server.com");
msg.To.Add(new MailAddress("me@server.com"));
msg.Body = "test";
tmp.Send(msg);
生成错误消息: System.Net.Mail.SmtpException: The server committed a protocol violation The server response was: UGFzc3dvcmQ6 at System.Net.Mail.MailCommand.CheckResponse(SmtpStatusCode statusCode,String response) at System.Net.Mail.SmtpTransport.SendMail(MailAddress sender,MailAddressCollection recipients,String deliveryNotify,SmtpFailedRecipientException & exception) at System.Net.Mail.SmtpClient.Send(MailMessage message) 但是,在下面的代码中,我手动设置了所有属性,代码运行无例外,并且电子邮件已发送. var tmp2 = new SmtpClient("servermail.outsourced.com",2525);
tmp2.Credentials = new NetworkCredential("username","password");
tmp2.UseDefaultCredentials = false;
MailMessage msg = new MailMessage();
msg.Subject = "test";
msg.From = new MailAddress("me@server.com");
msg.To.Add(new MailAddress("me@server.com"));
msg.Body = "test";
tmp2.Send(msg);
解决方法我在LINQPad中针对我的hMailServer邮件服务器尝试了你的配置设置,它们运行得很好.所以,我的猜测是你正在与之通信的邮件服务器是以意想不到的方式与客户握手.当我测试时,我从我的服务器捕获了SMTP日志,这就是它的样子(当然,已经过消毒):SENT: 220 my.mailserv.er ESMTP RECEIVED: EHLO CLIENTAPP SENT: 250-my.mailserv.er[nl]250-SIZE 25600000[nl]250 AUTH LOGIN RECEIVED: AUTH login bWFpbHRlc3RAbXkubWFpbHNlcnYuZXI= SENT: 334 UGFzc3dvcmQ6 RECEIVED: *** SENT: 235 authenticated. RECEIVED: MAIL FROM:<mailtest@mailserv.er> SENT: 250 OK RECEIVED: RCPT TO:<happyuser@mailserv.er> SENT: 250 OK RECEIVED: DATA SENT: 354 OK,send. 我的服务器需要SMTP AUTH,你可以看到我的客户端发送AUTH命令后,服务器响应状态码334,以及密码:的base-64编码表示.因此,我建议为SmtpClient使用turning on the trace functionality,以便您可以看到两种情况下发生的情况. 我正在运行LINQPad 4.31,我的linqpad.config文件包含: <?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.net>
<mailSettings>
<smtp from="mailtest@mailserv.er">
<network host="my.mailserv.er" port="25" userName="mailtest@mailserv.er" password="supersecure"/>
</smtp>
</mailSettings>
</system.net>
</configuration>
LINQPad查询如下: SmtpClient mailer = new SmtpClient();
Guid g = Guid.NewGuid();
g.Dump("Message GUID");
MailMessage msg = new MailMessage();
msg.Subject = "Test:" + g;
msg.To.Add(new MailAddress("happyuser@mailserv.er"));
msg.Body = "I HAS A BODY";
mailer.Send(msg); (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Asp.Net MVC3到MVC4升级工具?
- asp.net – 服务应用程序池“X”的进程与Windows进程激活服
- 如何在使用ASP.NET友好URL时忽略某些路由?
- 强制CamelCase在ASP.NET WebAPI每个控制器
- asp.net-mvc-4 – MVC 4 DropDownListFor错误 – 没有具有密
- asp.net-mvc – ‘Personal’是一种类型,在给定的上下文中无
- entity-framework – DbContext未在ASP.Net MVC中使用SQL S
- asp.net-mvc – 什么是应用程序洞察遥测(未配置)在做什么?
- asp.net-mvc – 启用SSL时,IIS默认为HTTPS的端口44300
- 经典的asp字符编码
推荐文章
站长推荐
- 如何使用WSP将Asp.net Web应用程序部署到Sharepo
- asp.net – 如何单元测试使用HostingEnvironment
- asp.net – 第一个事件?主页Page_Load或内容页P
- WF4 – 在asp.net中显示工作流图像,并突出显示活
- .net – 从控制器返回一个EditorTemplate作为部分
- WebApi ASP.NET身份Facebook登录
- asp.net-core – ASP.NET Core – Swashbuckle没
- ASP.NET浏览器显示“网页已过期”的后退按钮(回发
- ASP.NET MVC 3 Razor – jQuery Intellisense
- asp.net-mvc-4 – DataAnnotation Range属性的客
热点阅读
