[英]how to send an email in asp.net mvc4
我想使用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无效
ModelState属于一个模型,该模型传递给相应的视图/控制器。
我看到您在控制器中创建了一个新的AccuseReception
因此我假设您在此控制器操作中未将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);
}
}
这是一个适合您的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。 在邮政中,您可以构建以电子邮件发送的视图:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.