powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Получить адреса To , From и СС из отправляемого сообщения
2 сообщений из 2, страница 1 из 1
Получить адреса To , From и СС из отправляемого сообщения
    #37439218
Lasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пишу add-in в Outlook
Задача - при отправлении нового письма, определенные письма сохранять в базе данных
Проблема - не могу получить адреса нового письма, т.е. Subject и Body читаются, а "To", "From" и "СС" все время null
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
        using Outlook = Microsoft.Office.Interop.Outlook;
        
        public Outlook.Application OutlookApplication;

        private void ThisAddIn_Startup(object sender, System.EventArgs e)
        {
            OutlookApplication = this.Application;
            OutlookApplication.ItemSend += new Microsoft.Office.Interop.Outlook.ApplicationEvents_11_ItemSendEventHandler(OutlookApplication_ItemSend);
        }
        private void OutlookApplication_ItemSend(object Item, ref bool Cancel)
        {
            string emailTo = String.Empty  ;
            string emailFrom = String.Empty;
            string emailCC = String.Empty;
            string emailSubject = String.Empty;
            string emailBody = String.Empty;

            Outlook.MailItem mailItem = Item as Outlook.MailItem;

            if (mailItem != null)
            {
                    emailTo = mailItem.To;
                    emailFrom = mailItem.SenderEmailAddress;
                    emailSubject = mailItem.Subject;
                    emailBody = mailItem.HTMLBody;

                    SendToDB(emailTo, emailFrom, emailCC, emailSubject, emailBody);

            }
           
        }
...
Рейтинг: 0 / 0
Получить адреса To , From и СС из отправляемого сообщения
    #37439236
Lasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сама поправила
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
        private void OutlookApplication_ItemSend(object Item, ref bool Cancel)
        {
            string emailTo = String.Empty;
            string emailFrom = String.Empty;
            string emailSubject = String.Empty;
            string emailBody = String.Empty;

            Outlook.MailItem mailItem = Item as Outlook.MailItem;
            
            // Get the MAPI namespace.
            Outlook.NameSpace mapiItem = OutlookApplication.GetNamespace("mapi");

            if (mailItem != null)
            {
                sendToIMS = mailItem.UserProperties.Find("sendToIMS", true);

                if (sendToIMS.Value)
                {
                    foreach (Outlook.Recipient res in mailItem.Recipients)
                    {
                        if (res.Address.ToString().Contains("Exchange"))
                        {
                            Outlook.Recipient recip = mapiItem.CreateRecipient(res.Address);
                            Outlook.ExchangeUser exUser = recip.AddressEntry.GetExchangeUser();
                            emailTo = emailTo + " " + exUser.PrimarySmtpAddress;
                        }
                        else
                        {
                            emailTo = emailTo + " " + res.Address;
                        }
                    }
                    emailFrom = mapiItem.Accounts[1].SmtpAddress;
                    emailSubject = mailItem.Subject;
                    emailBody = mailItem.HTMLBody;

                    SendToDB(emailTo, emailFrom, emailSubject, emailBody);
                    
                }
            }
           
        }

,только неправильно все же вот этот кусок, вдруг адрес будет bla-bla-exchange@mail.ru
Код: plaintext
1.
2.
 if (res.Address.ToString().Contains("Exchange"))
   {
Для полученные писем, сделала вот так
Код: plaintext
1.
2.
 if (mailItem.SenderEmailType.ToString() == "EX")
 {
а как сделать для посылаемого письма не знаю :(
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Получить адреса To , From и СС из отправляемого сообщения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]