Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在asp.net mvc4中发送电子邮件_C#_Asp.net_Asp.net Mvc_Asp.net Mvc 4_Email - Fatal编程技术网

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

C# 如何在asp.net mvc4中发送电子邮件,c#,asp.net,asp.net-mvc,asp.net-mvc-4,email,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

我想使用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; }


}
控制器:

        if (ModelState.IsValid)
        {

           AccuseReception confermation_mail = new AccuseReception {

            From="xxxxxxxxxxx@gmail.com",
            To ="ssssssss@gmail.com",
            Subject ="mail_de confermation",
            Body = "votre demande est enregistrer ",

            };

        send_mail(my_mail);
         }

我没有收到任何错误,但是邮件没有发送,ModelState无效

下面是一个vb.net示例,它应该适合您。我在示例中看不到您的模型。但这应该足够了:

Dim smtpClient As New SmtpClient(_ServerHost, _ServerPort)
smtpClient.Credentials = New Net.NetworkCredential(_EmailAddress, _EmailPass, String.Empty)
smtpClient.EnableSsl = True
smtpClient.Timeout = 60000

Dim mailmsg as New MailMessage
mailmsg.Subject = i_Subject
mailmsg.From = New MailAddress(emailAddress, displayName)
mailmsg.To.Clear()
mailmsg.IsBodyHtml = True
mailmsg.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure

' Add email addresses
mailmsg.To.Add("someemail@gmail.com")

mailmsg.Body = SomeBodyHTML

If Not String.IsNullOrEmpty(mailmsg.Body.Trim) Then
    ' Send message
    smtpClient.Send(mailmsg)
End If    
顺便说一句,如果你想轻松地发送更复杂的html作为电子邮件,你可以使用邮政。在Postal中,您构建以电子邮件形式发送的视图:


模型状态属于传递给相应视图/控制器的模型

我看到在你的控制器中你创建了一个新的
AccountReceignment
,所以我假设你在这个控制器动作中没有得到AccountReceignment作为一个模型

这就是您的
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);
        }    
   }

您的示例没有显示您的模型的用途。。。这是很基本的。顺便说一句,如果您想轻松地将更复杂的html作为电子邮件发送,您可以使用
Postal
。在Postal中,您构建以电子邮件形式发送的视图:这是我如何使用我的模型AccountReception my_mail=new AccountReception{From=”amhhhhhhhhhh@gmail.com“,收件人=candidate.adresse_mail,Subject=“邮件”,正文=“最重要的信息,最重要的信息,最重要的信息,};酱汁: