Встраивание изображений в электронное письмо с помощью Outlook Interop - PullRequest
1 голос
/ 13 декабря 2011

У меня есть простое небольшое почтовое приложение, которое позволяет пользователю выбирать определенные параметры, которые генерируют строку и отправляют электронное письмо. Я хотел посмотреть, возможно ли добавить в электронное письмо изображения, то есть логотип заголовка или подпись и т. Д. Исследования, на которые я смотрел, очень тяжелые, и я очень мало знаю HTML. Кто-нибудь может помочь? Мой код выглядит следующим образом ...

using System;
using Outlook = Microsoft.Office.Interop.Outlook;
using System.Configuration;

namespace My_EmailSender
{
    public class EmailSender:Notification
    {
        string emailRecipient = ConfigurationManager.AppSettings["emailRecipient"];

        public void SendMail(string message)
        {
            try
            {
                var oApp = new Outlook.Application();
                var oMsg = (Outlook.MailItem)oApp.CreateItem(Outlook.OlItemType.olMailItem);
                var oRecip = (Outlook.Recipient)oMsg.Recipients.Add(emailRecipient);
                oRecip.Resolve();
                oMsg.Subject = "Email Notification";
                oMsg.Body = message;

                // Display the message before sending could save() also but no need
                oMsg.Send();
                oMsg.Display(true);
                oRecip = null;
                oMsg = null;
                oApp = null;
            }
            catch (Exception e)
            {
                Console.WriteLine("Problem with email execution. Exception caught: ", e);
            }

            return;
        }
    }
}

Ответы [ 2 ]

2 голосов
/ 08 ноября 2012

Вот пример кода для отправки изображения через Outlook в c #

        Configuration config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(HttpContext.Request.ApplicationPath);
        System.Net.Configuration.MailSettingsSectionGroup settings = (System.Net.Configuration.MailSettingsSectionGroup)config.GetSectionGroup("system.net/mailSettings");
        System.Net.Configuration.SmtpSection smtp = settings.Smtp;
        System.Net.Configuration.SmtpNetworkElement network = smtp.Network;
        Microsoft.Office.Interop.Outlook.Application outlookApp = new Microsoft.Office.Interop.Outlook.Application();
        MailItem mailItem = (MailItem)outlookApp.CreateItem(OlItemType.olMailItem);
        mailItem.To = network.TargetName;


        Attachment attachment = mailItem.Attachments.Add(
        "C://test.bmp"
        , OlAttachmentType.olEmbeddeditem
        , null
        , "test image"
        );
        string imageCid = "test.bmp@123";

        attachment.PropertyAccessor.SetProperty(
            "http://schemas.microsoft.com/mapi/proptag/0x3712001E"
            , imageCid
            );
        mailItem.BodyFormat = OlBodyFormat.olFormatRichText;
        mailItem.HTMLBody = String.Format(
              "<body><img src=\"cid:{0}\"></body>"
             , imageCid
             );

        mailItem.Importance = OlImportance.olImportanceNormal;
        mailItem.Display(false);

0 голосов
/ 13 декабря 2011

Я бы всегда использовал System.Net.Mail для отправки электронных писем, но, может быть, это ваше требование?

Читайте на system.net.mail здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...