Добрый день.
При попытке создать письмо через Terrasoft при закрытом Outlooke, вылезает ошибка "Неизвестное исключение" в данной строке var Recipient = MailItem.Recipients.Add(Address) скрипта scr_OutlookUtils :

function AddRecipient(MailItem, Address, RecipientType) {
        if (ValidateEmailAddress(Address)) {
                var Recipient = MailItem.Recipients.Add(Address);
                Recipient.Type = RecipientType;
                Recipient.Resolve;
        }
}

Распознает например:
Address = "Иванов Иван Иванович "
RecipientType = 1

При уже запущенном Outlooke в данной ситуации проблем не возникает.

В чем может быть загвоздка?

Нравится

10 комментариев

похоже на то, что нет возможности сформировать само письмо.
1) проверьте, не остается ли Outlook в диспетчере задач, после его закрытия (встречались различные проблемы именно при таких симптомах ;) )
2) Перерегистрируйте все библиотеки.

1. Нет, Outlooka нет в диспетчере

2. Не помогает

Кстати при ошибке на значке outlooka появляется шестеренка

Константин, т.е. если Outlook не запущен, и в системе Вы пытаетесь сформировать письмо, Outlook запускается ,но в трее отображается иконка с шестеренкой?

Похоже на то, что Outlook блокирует доступ. Проверьте надстройки COM-объектов Outlook - отключите все, кроме плагина Terrasoft .

"Олейник Дмитрий" написал:Константин, т.е. если Outlook не запущен, и в системе Вы пытаетесь сформировать письмо, Outlook запускается ,но в трее отображается иконка с шестеренкой?

Да, все верно.

Сделал вот так:
первый шаг
Но, в списке остается поведение при запуске - загружать при запуске
2 шаг

Все равно вылетает ошибка

Константин,

1) если у Вас семерка запустите MSOfficceConfig от имени администратора (обязательно правой кнопкой - запуск от имени администратора), проверьте стоят ли три галочки напротив Outlook, Excel, Word. Попробуйте их убрать и поставить заново, если они там все-таки проставлены. При этом закройте все прилодения пакета MS Officce, и сам Террасофт.
2) Уточните версию Террасофт.

3) что происходит если нажать двойным кликом на значок outlook'a с шестеренкой в трее?

Спасибо.

1. Перерегестрировал. Не помогло

2. 3.4.0.87

3. Открывается Outlook, впервый раз выдал доступ (было разрешено всегда)

Здравствуйте, Константин.

Попробуйте обновиться на новую сборку 3.4.0, направив нам запрос в тех. поддержку: support@terrasoft.ru.
Также отключите UAC на Вашем ПК, еще раз проверьте COM-надстройки.

После обновления сборки проблема не исчезла :cry:

Общая информация
Дата/Время: 05.02.2013 19:42:38
Local Date/Time: 05.02.2013 19:42:38
Local Time Zone: Russian Standard Time
Computer Name: 412-K
Имя пользователя: kogut
Операционная система: Windows 7 Professional, Build: 7601, 'Service Pack 1'

Посмотрел отладку и заметил что в функции function CreateNewMessage(Params) творится

debugger;	
	var Message = CreateNewOutlookMessage(Params.Template ? 
		Params.Template.FileName : null);
 
	if (Params.Address) {
		if (typeof(Params.Address) == 'string') {
			Params.Address = [Params.Address];
		} else {
			Params.Address = RemoveDublicates(Params.Address);
		}
		for (var i = 0; i < Params.Address.length; i++) {
			AddRecipient(Message, Params.Address[i], olTo);

Когда дело доходит до Message, если в отладке поставить в просмотр Message.Recipients, то при прохождении он пишет, даже если обновлять.

Message.Recipients	Не удается вычислить выражение. Операция прервана

И соответсвенно выдает ошибку в функции AddRecipient(Message, Params.Address[i], olTo);

Но если посмотреть физически на свойства message (даже если сразу после CreateNewOutlookMessage), и найти там Recipients, дальше он пройдет все без ошибки.
Как так?

Александр, у на другом ПК ситуация воспроизводится?

Вообще, по логике при создании письма без шаблона, письмо должно создаваться пустое, и поле "Кому" (Recipients) заполняться не должно.

Показать все комментарии