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