C # получить выделенный текст в теле письма для MS Outlook 2007 - PullRequest
1 голос
/ 07 февраля 2012

Я использую C # и outlook-addin.

Я хочу, чтобы пользователь мог выбрать часть почтового сообщения / тела, и я хочу иметь возможность скопировать выбранные элементы и сохранить их в базе данных сервера SQL.

Outlook.Application myApplication = Globals.ThisAddIn.Application;
Outlook.Explorer myActiveExplorer = 
    (Outlook.Explorer)myApplication.ActiveExplorer();

Outlook.Selection selection = myActiveExplorer.Selection;

if (selection.Count == 1 && selection[1] is Outlook.MailItem)
{
    Outlook.MailItem mail = (Outlook.MailItem)selection[1];

    mail.Copy(); // currently opened mail

    Outlook.MailItem mailItem = (Outlook.MailItem)
        myApplication.CreateItem(
        Microsoft.Office.Interop.Outlook.OlItemType.olMailItem);

    mailItem.Subject = mail.Subject;
    mailItem.To = mail.To;

    mailItem.Body = ?????         // copy only selected text/images of user 

    mailItem.Importance = Outlook.OlImportance.olImportanceLow;
    mailItem.Display(true);
}

На mailITem.Body я просто хочу вставить выбранный текст / изображения пользователя из выбранного письма (текущего открытого письма).

Я не могу найти метод вставки, как я могу его реализовать?

1 Ответ

3 голосов
/ 08 февраля 2012

Outlook не может получить выделенный текст в теле письма, поэтому преобразуйте внешний вид в редактор слов, чтобы вы могли выполнить следующие 3 шага:

1. get the mail total body
2. use the word editor based on the **microsoft.office.Interop.word** dll
3. select the text and to store the any string

сначала добавить ссылку на dll

object oItem;
Outlook.Application oApp=new Outlook.Application();
Outlook.Explorer oExp=oApp.ActiveExplorer();
Outlook.Selection oSel= oExp.Selection;
for (i = 1; i <= oSel.Count; i++)
{
    oItem = oSel[i];
    Outlook.MailItem oMail = (Outlook.MailItem)oItem;
    Outlook.Inspector inspector = oMail.GetInspector;

    // Obtain the Word.Document object from the Inspector object
    Microsoft.Office.Interop.Word.Document document = 
        (Microsoft.Office.Interop.Word.Document)inspector.WordEditor;

    mailItem.Body = document.Application.Selection.Text;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...