2013-05-02 4 views
0

Я пишу надстройку Outlook 2007, которая составляет бизнес-котировку в ответ на запрос электронной почты. Я составляю цитату, используя формы Windows. Все работает нормально, пока я не доберусь до исходного сообщения с информацией о котировке.Как ответить на почтовый ящик Outlook с помощью .net

private void btnSend_Click(object sender, EventArgs e) 
{ 
    Outlook.MailItem theMail = ((Outlook._MailItem)quote.mailItem).Reply(); 
    theMail.Subject = "This is the quote"; 
    theMail.Body = <Some html composed elsewhere>; 

    Outlook.Recipient rcp = theMail.Recipients.Add("Joe Blow"); 
    Outlook.AddressEntry ae = rcp.AddressEntry; 
    ae.Address = "[email protected]"; 
} 

Где quote.mailItem - это входящий запрос электронной почты. Когда я запускаю код, он выдает исключение, выполняющее rcp.AddressEntry. Ошибка

'Объект не может быть найден'

. Что мне нужно сделать, это добавить и удалить адресатов, а также установить CC и BCC поля в цитате, прежде чем я отправлю ее. Адресаты могут отсутствовать в адресной книге. Я сделал это с другими почтовыми библиотеками, и это должно быть просто, но я, кажется, лаяю неправильное дерево для Outlook.

РЕДАКТИРОВАТЬ Нашли это - спасибо, что Дмитрий за то, что указал мне в правильном направлении.

Outlook.Recipient rcp = theMail.Recipients.Add("joe blow <[email protected]>"); 
rcp.Type = (int)Outlook.OlMailRecipientType.olTo; 
+0

Если ответ Димитрия является правильным, пожалуйста, оцените и принимаю его :) – etalon11

+0

Проблема не решить решение, как это предусмотрено в ответ Дмитрия, но он действительно получил меня в надлежащее области документации, для которой я благодарил его. – Jon

ответ

1

Получатель должен быть разрешен первым. И вы не можете установить свойство AddressEntry.Address - даже если оно было установлено, оно не указывает на таблицу получателей сообщений.

Outlook.Recipient rcp = theMail.Recipients.Add("Joe Blow <[email protected]>"); 
rcp.Resolve(); 
+0

Спасибо, Дмитрий, я должен сделать вывод, что получатель должен быть в адресной книге, прежде чем Outlook отправит ему письмо? – Jon

+0

Нет, «Joe Blow <[email protected]>» будет разрешен одноразовому получателю SMTP. Это не отличается от ручной ввода адреса в поле «Изменить» в Outlook и нажатия Ctrl + K для его устранения. –

Смежные вопросы