c# – “SMTP主机未指定” – 但是是否指定?

栏目: C# · 发布时间: 6年前

内容简介:代码日志版权声明:翻译自:http://stackoverflow.com/questions/21219580/the-smtp-host-was-not-specified-but-it-is-specified

我在这里有些困惑 – 我收到以下错误:

The SMTP host was not specified.

即使我的代码似乎是正确的(从我可以看到).

我可以通过将控制器内的所有细节包括在内,手动执行.

SmtpClient smtpClient = new SmtpClient("smtp.gmail.com");
smtpClient.Port = 587;
... etc

但我不应该这样做,因为我想使用mailSettings中的详细信息(使其可以用于各种不同的控制器).

mailSettings在我的Web.Config文件中:

<system.net>
   <mailSettings>
     <smtp from="example@gmail.com" deliveryMethod="Network" >
       <network host="smtp.gmail.com" defaultCredentials="true" 
                port="587" enableSsl="true" userName="example@gmail.com"
                password="example"/>
     </smtp>
   </mailSettings>
</system.net>

我的控制器动作:

[HttpPost]
 public ActionResult SubmitFeature(FormData formData)
 {
     SmtpClient smtpClient = new SmtpClient();

     MailMessage mail = new MailMessage();
     mail.To.Add(new MailAddress("example@gmail.com"));
     mail.Body = "Test";

     smtpClient.Send(mail);

     return View("Example");
 }

有没有什么我可能会造成这种损失?我没有在Web.Config中的任何其他设置混乱,他们是一样的,当设置一个新的MVC5项目.

在一个干净的MVC项目中,我无法复制您的问题.在 ScottGu blog post here 之后,我可以得到一个gmail发送的电子邮件没有问题(VS 2013,.NET 4.5.1,MVC 5).请注意<system.net>元素是顶级元素,不嵌套在AppSettings或<

system.web&gt ;. 重要 解决方案中有几个web.config文件,确保将mailSettings插入根级别web.config(而不是位于Views文件夹中的) Web.Config中

<configuration>
  <system.net>
    <mailSettings>
      <smtp from="myEmail@gmail.com">
        <network host="smtp.gmail.com" 
                 port="587" 
                 enableSsl="true" 
                 userName="myEmail@gmail.com" 
                 password="SuperSecretPwd" 
                 defaultCredentials="false" /> <!--This must be false on Gmail-->
      </smtp>
    </mailSettings>
  </system.net>
</configuration>

调节器

var smtpClient = new SmtpClient();
var msg = new MailMessage();
msg.To.Add("MyOtherAddress@yahoo.com");
msg.Subject = "Test";
msg.Body = "This is just a test email";
smtpClient.Send(msg);

目前尚不清楚您所包含的额外属性是否会导致问题(以为不应该),例如传递方式.另外,是否有允许SMTP访问的设置,或仅仅是为了IMAP / POP传送?

如果您可以测试并在干净的项目中成功,那么这将指向您的项目中的web.config转换问题或某些其他设置,覆盖您所在的web.config设置.

代码日志版权声明:

翻译自:http://stackoverflow.com/questions/21219580/the-smtp-host-was-not-specified-but-it-is-specified


以上所述就是小编给大家介绍的《c# – “SMTP主机未指定” – 但是是否指定?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Java EE WEB开发与项目实战

Java EE WEB开发与项目实战

李俊青 / 华中科技大学出版社 / 2011-11 / 59.80元

本书采用工程案例的形式,将日常Java EE项目开发所涉及的技术要点进行了解析,系统介绍了Apache的安装、Tomcat的安装、虚拟主机的配置、开发工具的搭配使用、验证码的使用、过滤器的使用、密码的加密与解密、JavaMail邮件发送、Web在线编辑器的使用、文件上传、数据库连接池、Ajax与Servlet的身份认证、Struts框架的应用、JSF框架的应用、Spring框架的应用、Hibern......一起来看看 《Java EE WEB开发与项目实战》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具