8
votes

ASP.NET MVC: Comment envoyer un courrier électronique HTML à l'aide d'un contrôleur?

Quel serait le moyen le plus simple d'envoyer un e-mail HTML personnalisé à l'aide de ASP.NET?

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.

C'est ce faisable / la façon de le faire?

merci,


5 Réponses :


6
votes

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 xxx


1 commentaires

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. :)



10
votes

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. XXX


2 commentaires

Bonjour, qu'est-ce que Object viewData param? Qu'est-ce que nous avons à la place quand la méthode l'a appelé?


Ce lien semble être expiré



2
votes

J'utilise MVC Mailer pour tous mes besoins de messagerie

Voir le lien de projet ci-dessous pour plus d'informations

https://github.com/smsohan/mvcmailer


0 commentaires

-1
votes

Vous devez également ajouter des codes ci-dessous avant d'envoyer le courrier:

mailMessage.IsBodyHtml = true;


0 commentaires

0
votes
    [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();
    }

0 commentaires