Quel serait le moyen le plus simple d'envoyer un e-mail HTML personnalisé à l'aide de ASP.NET? P>
Je suppose idéalement je voudrais envoyer HTML par courrier électronique plutôt que de le renvoyer au navigateur via une actionResult, comme je le ferais normalement. De cette façon, je pouvais créer l'email comme une vue, l'approvisionnement avec des données via un modèle, puis tirez-le à l'aide de Standard .NET Email Stuff. P>
C'est ce faisable / la façon de le faire? P>
merci, p>
5 Réponses :
Je pense que l'envoi d'e-mail à MVC est exactement identique à celui du formulaire Web, il vous suffit de définir le fichier Atribute du message de messagerie sur HTML activé, alors il s'agit de la nourriture à partir. Comme ce code
Toutes mes excuses, je n'étais probablement pas claire. Je voudrais envoyer une vue comme le corps d'un courrier électronique, au lieu de le renvoyer au navigateur. :)
Ce Publication du blog a un bon Solution pour rendu une vue sur une chaîne afin que vous puissiez l'envoyer dans un email.
Bonjour, qu'est-ce que Object viewData code> param? Qu'est-ce que nous avons à la place quand la méthode l'a appelé?
Ce lien semble être expiré
J'utilise MVC Mailer pour tous mes besoins de messagerie P>
Voir le lien de projet ci-dessous pour plus d'informations p>
Vous devez également ajouter des codes ci-dessous avant d'envoyer le courrier:
mailMessage.IsBodyHtml = true;
[HttpPost]
public ActionResult SendEmail(string Type, string name, int Id, string subject, string message, HttpPostedFileBase uploadFile)
{
try
{
if (ModelState.IsValid)
{
var abc = _salesInvoiceMasterService.GetallInvoices().Where(a => a.TransId == Id).FirstOrDefault();
var xyz = _accountMasterMainService.GetAllData().Where(a => a.Id == abc.CustId).FirstOrDefault();
var mm = xyz.Email;
if (mm == null)
{
string isCheckNull = "No";
return Json(isCheckNull, JsonRequestBehavior.AllowGet);
}
var Sendermail = _systemSettingService.GetSetting().Where(a => a.BranchId == branchId && a.CompanyId == companyId && a.FinancialId == financialYId).FirstOrDefault();
if (Sendermail.UserName == null)
{
string isCheckNull = "Not";
return Json(isCheckNull, JsonRequestBehavior.AllowGet);
}
var User = Sendermail.UserName;
var senderEmail = new MailAddress(Sendermail.UserName.ToString(), "Manabh Software");
var receiverEmail = new MailAddress(mm, "Receiver");
var password = Sendermail.Password;
if (password == null)
{
string isCheckNull = "PassNot";
return Json(isCheckNull, JsonRequestBehavior.AllowGet);
}
var sub = subject;
var body = message;
var smtp = new SmtpClient
{
Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = true,
Credentials = new NetworkCredential(senderEmail.Address, password.ToString())
};
using (MailMessage mail = new MailMessage(senderEmail, receiverEmail))
{
mail.Subject = subject;
mail.Body = message;
System.Net.Mail.Attachment attachment;
attachment = new System.Net.Mail.Attachment("D:/Users/Manabh/Downloads/SalesInvoice_" + Type + "_" + name + "_" + Id + ".pdf");
mail.Attachments.Add(attachment);
smtp.Send(mail);
}
return View();
}
}
catch (Exception e)
{
string isCheckNull = "NotExist";
return Json(isCheckNull, JsonRequestBehavior.AllowGet);
}
return View();
}
Voir aussi: Stackoverflow.com/Questtions/118532/...