【问题标题】:Failure sending Mail in asp.net mvc4 smtp.Send(mail)在 asp.net mvc4 smtp.Send(mail) 中发送邮件失败
【发布时间】:2013-02-04 12:02:55
【问题描述】:

我在 stackoverflow 中找到了有关此问题的帖子数量,但我的问题仍然没有解决。我尝试使用以下代码发送邮件:

在控制器中:

try
         {
        MailMessage mail = new MailMessage();
        mail.To.Add("mailto@gmail.com");
        mail.From = new MailAddress("mailfrom@gmail.com");
        mail.Subject = "Feedback for Website";
        string Body = "Name:";
        mail.Body = Body;
        mail.IsBodyHtml = true;
        SmtpClient smtp = new SmtpClient();
        smtp.Host = "smtp.gmail.com";
        smtp.EnableSsl = true;
        smtp.Credentials = new System.Net.NetworkCredential("mailTo@gmail.com", "topassword");
        smtp.Send(mail);

    }
    catch (Exception ex)
    {
       Response.Write(ex.Message);

    }

web.config:

<system.net>
<mailSettings>
  <smtp deliveryMethod="PickupDirectoryFromIis">
    <network defaultCredentials="true" host="localhost" port="25"/>
  </smtp>
</mailSettings>

我也试过这个:

<smtp from="mymail@gmail.com">
 <network enableSsl="true" host="smtp.gmail.com" port="587" userName="mymail@gmail.com" password="mypassword" />

调试时在我的输出中:

Step into: Stepping over non-user code 'System.Net.Mail.MailMessage.MailMessage'
Step into: Stepping over non-user code 'System.Net.Mail.MailMessage.To.get'
Step into: Stepping over non-user code 'System.Net.Mail.MailAddress.MailAddress'
Step into: Stepping over non-user code 'System.Net.Mail.MailMessage.Subject.set'
Step into: Stepping over non-user code 'System.Net.Mail.MailMessage.Body.set'
Step into: Stepping over non-user code 'System.Net.Mail.MailMessage.IsBodyHtml.set'
Step into: Stepping over non-user code 'System.Net.Mail.SmtpClient.SmtpClient'
Step into: Stepping over non-user code 'System.Net.Mail.SmtpClient.Host.set'
Step into: Stepping over non-user code 'System.Net.Mail.SmtpClient.EnableSsl.set'
The thread '<Thread Ended>' (0x1f38) has exited with code 0 (0x0).
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio.Debugger.Runtime\11.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.Debugger.Runtime.dll'
Step into: Stepping over non-user code 'System.Net.NetworkCredential.NetworkCredential'
The thread '<No Name>' (0x23d8) has exited with code 0 (0x0).
Step into: Stepping over non-user code 'System.Net.Mail.SmtpClient.Send'
A first chance exception of type 'System.Net.Mail.SmtpException' occurred in System.dll
The thread '<Thread Ended>' (0x1474) has exited with code 0 (0x0).

如何解决这个..请帮帮我..

【问题讨论】:

    标签: asp.net-mvc sendmail smtpclient


    【解决方案1】:

    经过长时间的搜索,我终于解决了这个问题:

    Host = "172.**.*.***",
    Port = 25,
    EnableSsl = false,
    
    Changed host from smtp.gmail.com to "172.**.*.***"(my mail server IP)
    port changed from 587 to 25
    and set false to EnableSsl
    

    它在本地工作。通过使用本地服务器主机。

    【讨论】:

      【解决方案2】:

      尝试下一个设置。

      在代码中启用 ssl:

      smtp.EnableSsl = true;
      

      如下设置配置:

      <mailSettings>
            <smtp deliveryMethod="Network" from="username@gmail.com">
              <network defaultCredentials="false" host="smtp.gmail.com" port="587" userName="mymail@gmail.com" password="mypassword" />
            </smtp>
      </mailSettings>
      

      【讨论】:

      • 感谢 Dima 的回复..我尝试了你的建议..但还是一样..
      • 你为什么没有从一开始就说你要使用你的个人smtp服务器? :)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-19
      • 2011-09-27
      • 2012-12-03
      • 2014-08-29
      • 2012-11-17
      • 1970-01-01
      • 2015-11-20
      相关资源
      最近更新 更多