Вставить картинку в тело письма

159
03 июня 2019, 01:50

Вопрос такой, как вставить картинку в тело сообщения? Искал в интернете, находил AlternateView jpeg_view = new AlternateView, но не помогает. сообщение на почте либо пустое, либо чисто текст. Прошу помощи кто знает как правильно отправлять HTML текст и вставлять картинку.

Answer 1
MailMessage mailWithImg = getMailWithImg();
MySMTPClient.Send(mailWithImg); //* Set up your SMTPClient before!
private MailMessage getMailWithImg() {
    MailMessage mail = new MailMessage();
    mail.IsBodyHtml = true;
    mail.AlternateViews.Add(getEmbeddedImage("c:/image.png"));
    mail.From = new MailAddress("yourAddress@yourDomain");
    mail.To.Add("recipient@hisDomain");
    mail.Subject = "yourSubject";
    return mail;
}
private AlternateView getEmbeddedImage(String filePath) {
    LinkedResource res = new LinkedResource(filePath);
    res.ContentId = Guid.NewGuid().ToString();
    string htmlBody = @"<img src='cid:" + res.ContentId + @"'/>";
    AlternateView alternateView = AlternateView.CreateAlternateViewFromString(htmlBody, null, MediaTypeNames.Text.Html);
    alternateView.LinkedResources.Add(res);
    return alternateView;
}

Взято с https://stackoverflow.com/a/30126266/4423545