Я хотел бы вставить изображение в мои электронные письма - PullRequest
0 голосов
/ 22 мая 2018

Я пробовал много разных вещей, но я просто не могу понять, как встроить изображение в мой код.Мой план - отправлять письма с изображением в теле строки.Изображение сохраняется в папке содержимого.

mm.Subject = "CompanyName ";
string body = "Dear " + CustomerMasterObj.CustomerName + ", \n";
                    body += "\n";
                    body += "\n";    
                    body += EmailTemplateObj.EmailMsg;
                    body += "\n";
                    body += Userurl;
                    body += "\n";
                    body += "Thank you in advance. \n";
                    body += "\n";
                    body += " Yours sincerely, \n";
                    body += "\n";
                    body += "John Doe \n";
                    mm.Body = body;    
                    mm.IsBodyHtml = false;

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

Попробуйте следующее, где использовался объект LinkedResource, потому что в некоторых случаях в приложениях электронной почты для мобильных устройств без LinkedResource не отображались изображения для получателя сообщения.

using System;
using System.IO;
using System.Net.Mail;

namespace PayneInMyButt
{
    public class EmailImage
    {
        public void DemoForImage()
        {
            using (MailMessage mail = new MailMessage())
            {
                mail.From = new MailAddress("TODO");
                mail.To.Add("TODO");
                mail.Subject = "This is an email";

                AlternateView PlainMessage = AlternateView.CreateAlternateViewFromString("Hello, plain text", null, 
                    "text/plain");

                AlternateView HtmlMessage = AlternateView.CreateAlternateViewFromString(
                    "This is an automated email, please do not respond<br><br>This is a test <br>" + 
                    "<span style=\"font-weight: bold; padding-left: 20px;padding-right:5px\">Some bold text</span>" + 
                    "Non bold<br><span style=\"font-weight: bold; padding-left: 5px;padding-right:5px\">Second line</span>" + 
                    "This is Kate below<br><span style=\"font-weight: bold; padding-left: 70px;padding-right:5px\">" + 
                    "<img src=cid:Image1>", null, "text/html");

                LinkedResource Logo = new LinkedResource(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, 
                    "LogoImage.jpg"), 
                    "image/jpeg");

                Logo.ContentId = "Image1";

                mail.AlternateViews.Add(PlainMessage);
                mail.AlternateViews.Add(HtmlMessage);
                using (SmtpClient smtp = new SmtpClient("TODO"))
                {
                    smtp.Send(mail);
                }
            }
        }
    }
}
0 голосов
/ 22 мая 2018

Вы можете использовать HTML для добавления тега <img>, но это будет означать преобразование вашего изображения в base64 или размещение его на хосте:

Вот некоторый псевдокод для достижения этого:

MailMessage mm = new MailMessage
   {
     IsBodyHtml = true,
     Subject = "CompanyName",
   };
string body = "HTML OPENING TAG .... YOUR CONTENT";
body += "<img src=\"data:image/png;base64," + Convert.ToBase64String(File.ReadAllBytes("path")) + "\" alt=\"myimage\" />";
body += "MORE HTML + HTML CLOSING TAG";
mm.Body = body;
...