Встраивание изображения в тело письма - PullRequest
0 голосов
/ 31 января 2012

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

 private void ThisAddIn_Startup(object sender, System.EventArgs e)
    {
        Outlook.Inspectors inspectors;
        inspectors = this.Application.Inspectors;
        inspectors.NewInspector +=
        new Microsoft.Office.Interop.Outlook.InspectorsEvents_NewInspectorEventHandler(Inspectors_NewInspector);
    }

    private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
    {
    }

    void Inspectors_NewInspector(Microsoft.Office.Interop.Outlook.Inspector Inspector)
    {
        Outlook.MailItem mailItem = Inspector.CurrentItem as Outlook.MailItem;
        if (mailItem != null)
        {
            if (mailItem.EntryID == null)
            {
                mailItem.Subject = "This text was added by using code";
                mailItem.HTMLBody = "<html><body>this is a <img src=" + @"C:\Users\Public\Pictures\Sample Pictures\Chrysanthemum.jpg> embedded picture.</body></html>";
                //mailItem.HtmlBody = "<html><body>this is a <img src=\"cid:" + @"C:\Users\Public\Pictures\Sample Pictures\Chrysanthemum.jpg" + "\"> embedded picture.</body></html>";
            }

        }
    }

, но изображение не отображается.Пожалуйста, помогите.

Заранее спасибо.

1 Ответ

0 голосов
/ 31 января 2012

Хотя я не использовал компоненты Outlook напрямую, вам нужно встроить изображение в почту.Все, что вы делаете в приведенном выше коде, - это создание строки, которая ссылается на изображение на вашем локальном жестком диске.

В моем мире я использую почтовые компоненты .NET, , поэтому возьмите это с крошкойсоль , но понятия должны перенести.Я делаю что-то вроде этого:

AlternateView htmlView = AlternateView.CreateAlternateViewFromString(model.MessageBody_Html, null, MediaTypeNames.Text.Html);

ImgStream   = new MemoryStream(media.MediaData); 
linkedImage = new LinkedResource(ImgStream, MediaTypeNames.Image.Jpeg);
linkedImage.ContentId    = "img_" + media.MediaID;
linkedImage.TransferEncoding    = TransferEncoding.Base64;
htmlView.LinkedResources.Add(linkedImage);

Кроме того, при создании HTML-сообщений рекомендуется включать текстовую версию.

...