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

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

内容简介:代码日志版权声明:翻译自: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主机未指定” – 但是是否指定?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

Series 60 应用程序开发

Series 60 应用程序开发

巴克 / 人民邮电出版社 / 2005-7 / 75.0

Series 60智能手机开发平台正掀起新一轮的移动服务浪潮。超过60%的手机生产商获得了Series 60平台的授权。Series 60移动应用开发平台拥有最大的用户群,从而成为智能手机市场的代表。诺基亚与EMCC软件公司合作,为C++程序员和软件设计师编撰了这本Series 60开发的权威指南。本书由诺基亚资深专家进行了全面审阅。本书内容涉及了开发过程的各个阶段,从设计、编程、测试、调试到部署......一起来看看 《Series 60 应用程序开发》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

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

UNIX 时间戳转换