如何将图像(徽标)添加到电子邮件发送者MVC中



我希望能够发送带有图像的电子邮件。以下代码有效,但我不知道如何向其添加图像。感谢您的帮助!

namespace Identity.Areas.Birthdays.Controllers
{
    public class EmailController : ApplicationBaseController
    {
        private EmployeeInfoEntities db = new EmployeeInfoEntities();
        public ActionResult SendEmail(int? id)
        {
            if (id == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            EmployeeInfo employeeInfo = db.EmployeeInfoes.Find(id);
            if (employeeInfo == null)
            {
                return HttpNotFound();
            }
            return View(employeeInfo);
        }
        [HttpPost]
        public ActionResult SendEmail(string receiver, string subject, string message, string from)
        {
            try
            {
                if (ModelState.IsValid)
                { 
                    var senderEmail = new MailAddress("test@gmail.com");
                    var receiverEmail = new MailAddress(receiver, "Receiver");
                    var password = "*********";
                    var sub = subject;
                    var body = "<font color='red'>" + "<font size='20px'>" + message + "<br />"  + "<br />" + "<font color='blue'>" + from + "</font>" + "</font>" + "</font>";
                    var smtp = new SmtpClient
                    {
                        Host = "smtp.gmail.com",
                        Port = 587,
                        EnableSsl = true,
                        DeliveryMethod = SmtpDeliveryMethod.Network,
                        UseDefaultCredentials = false,
                        Credentials = new NetworkCredential(senderEmail.Address, password)
                    };
                    using (var mess = new MailMessage(senderEmail, receiverEmail)
                    {
                        Subject = subject,
                        Body = body
                    })
                    {
                        mess.IsBodyHtml = true;
                        smtp.Send(mess);
                        ViewBag.Message = "Message Has Been Sent!";
                    }
                    return View();
                }
            }
            catch (Exception)
            {
                ViewBag.Error = "An Error Has Occurred!";
            }
            return View();
        }

    }
}

您必须将图像放在身体字符串中。

var body = "<img src='~/images/sample.jpg' /> <font color='red'>" + "<font size='20px'>" + message + "<br />"  + "<br />" + "<font color='blue'>" + from + "</font>" + "</font>" + "</font>";

确保存在图像文件夹和示例。

表示歉意,我意识到上述内容不起作用,您将在输出中得到破坏的图像,因为字符串也不知道它也必须呈现图像。

新解决方案,甚至更好地创造身体的身体:使用此方法。https://lastloop.blogspot.com/2019/07/send-email-from-c.html

您将在HTML中正常添加时添加图像标签,但是由于您在电子邮件中发送它,因此要添加的图像必须托管在某个地方。例如,像这个Google徽标:

<img srce='https://www.google.com.pk/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png'/>

相关内容

最新更新