c# - 如何在asp.net mvc4中发送电子邮件

标签 c# asp.net asp.net-mvc asp.net-mvc-4 email

我想使用 asp.net mvc 4 应用程序发送电子邮件,我正在使用此方法

     public void send_mail(ProcRec.Models.AccuseReception _objModelMail)
    {

        MailMessage mail = new MailMessage();
        mail.To.Add(_objModelMail.To);
        mail.From = new MailAddress(_objModelMail.From);
        mail.Subject = _objModelMail.Subject;
        string Body = _objModelMail.Body;
        mail.Body = Body;
        mail.IsBodyHtml = true;
        SmtpClient smtp = new SmtpClient();
        smtp.Host = "smtp.gmail.com";
        smtp.Port = 587;
        smtp.UseDefaultCredentials = false;
        smtp.Credentials = new System.Net.NetworkCredential
        ("username", "password");// Enter seders User name and password
        smtp.EnableSsl = true;
        smtp.Send(mail);


    }

我的模型:

            public class AccuseReception
{


    public string From { get; set; }
    public string To { get; set; }
    public string Subject { get; set; }
    public string Body { get; set; }


}

Controller :

        if (ModelState.IsValid)
        {

           AccuseReception confermation_mail = new AccuseReception {

            From="<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="8ff7f7f7f7f7f7f7f7f7f7f7cfe8e2eee6e3a1ece0e2" rel="noreferrer noopener nofollow">[email protected]</a>",
            To ="<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="f38080808080808080b3949e929a9fdd909c9e" rel="noreferrer noopener nofollow">[email protected]</a>",
            Subject ="mail_de confermation",
            Body = "votre demande est enregistrer ",

            };

        send_mail(my_mail);
         }

我没有收到错误,但邮件未发送且 ModelState 无效

最佳答案

ModelState 属于传递给相应 View / Controller 的模型。

我看到您在 Controller 中创建了一个新的 AccuseReception,因此我假设您在此 Controller 操作中没有将 AccuseReception 作为模型获取。

这就是您的 ModelState.IsValid 返回 false 并且没有发送邮件的原因。

尝试类似:

 public void SendMail(ProcRec.Models.AccuseReception _objModelMail)
 {
       if(ModelState.IsValid)
       {

           MailMessage mail = new MailMessage();
           mail.To.Add(_objModelMail.To);
           mail.From = new MailAddress(_objModelMail.From);
           mail.Subject = _objModelMail.Subject;
           string Body = _objModelMail.Body;
           mail.Body = Body;
           mail.IsBodyHtml = true;
           SmtpClient smtp = new SmtpClient();
           smtp.Host = "smtp.gmail.com";
           smtp.Port = 587;
           smtp.UseDefaultCredentials = false;
           smtp.Credentials = new System.Net.NetworkCredential
           ("username", "password");// Enter seders User name and password
           smtp.EnableSsl = true;
           smtp.Send(mail);
        }    
   }

关于c# - 如何在asp.net mvc4中发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25709690/

相关文章:

javascript - CSHTML 中javascript 的断点?

asp.net-mvc - 如何使用razor View 引擎简洁地创建可选的HTML属性?

c# - C# 中的逆 FFT

c# - 如何有效地限制然后将结果与 linq/lambda 表达式连接?

c# - 在 C# 中,如何在接口(interface)中声明 EventHandler 的子类?

c# - 单击 ASP.NET 按钮会使页面以 IE9 的 Quirks 模式显示

C# ASP.NET 单点登录实现

css - listview asp页面添加inline display none到listview html元素

jquery - 使用 qTip jQuery 插件进行 ASP.NET MVC 验证

c# - 当 wpf 中的 IsEnabled 更改时更改按钮属性