Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Відправка по ел. пошті
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
djdf_crash
Доброго всім дня. Підкажіть в чому може бути проблема. Є обробка, яка відправляє листи по e-mail. Але часто виникає помилка, при відправці листа (ОтправляемоеПисьмо.Таймаут = 10000; Поле агрегатного объекта не найдено (Таймаут)). Дякую.

Використовується ROM-Mail.dll.
vadim007
Приведіть, будь ласка, код визову.
Acid
Для каких целей используется таймаут??? не нужен он там вовсе.
djdf_crash
vadim007,

Процедура ПриОткрытии()   
    СтатусВозврата(0);    
    Состояние("Отправка почты....");
    
    Если ЗагрузитьВнешнююКомпоненту("ROM-Mail.dll") <> 1 Тогда
        Предупреждение("Компонента ROM-Mail.dll не найдена!",30);
        Возврат;
    КонецЕсли;
                
    Если ПустоеЗначение(Форма.Параметр) = 1 Тогда
        Предупреждение("Отправка почты:Не переданы параметры!",30);
        Возврат;
    КонецЕсли;
                
    Если ТипЗначенияСтр(Форма.Параметр) <> "СписокЗначений" Тогда
        Предупреждение("Отправка почты:Не верно переданы параметры!",30);
        Возврат;
    КонецЕсли;

    Параметры = Форма.Параметр;

    Если Параметры.РазмерСписка() < 8 Тогда
        Предупреждение("Отправка почты:Недостаточно параметров!",30);
        Возврат;
    КонецЕсли;
    Тема = Параметры.Получить("ТЕМА");
    Файл = Параметры.Получить("ФАЙЛ");
    АдресПолучателя     = Параметры.Получить("АДРЕС_ПОЛУЧАТЕЛЯ");
    АдресОтправителя     = Параметры.Получить("АДРЕС_ОТПРАВИТЕЛЯ");
    ИмяОтправителя         = Параметры.Получить("ИМЯ_ОТПРАВИТЕЛЯ");
    ТелоПисьма            = Параметры.Получить("ПИСЬМО");
    СМПТ                 = Параметры.Получить("СМТП");
    
    Логин = Параметры.Получить("ЛОГИН");
    Пароль = Параметры.Получить("ПАРОЛЬ");

    Если ПустоеЗначение(Логин) = 1 Тогда
        АутентификацияПриОтправке = 0;
    Иначе
        АутентификацияПриОтправке = 1;
    КонецЕсли;
    
    Порт = Параметры.Получить("ПОРТ");
    Если ПустоеЗначение(Порт) = 1 Тогда
        Порт = "25";
    КонецЕсли;
    
    ОтправляемоеПисьмо=СоздатьОбъект("AddIn.AddInMail");
            
            
    ОтправляемоеПисьмо.СерверОтправки=СокрЛП(СМПТ);
    ОтправляемоеПисьмо.ПортОтправки=СокрЛП(Порт);
    ОтправляемоеПисьмо.АутентификацияПриОтправке=АутентификацияПриОтправке;    
    Если АутентификацияПриОтправке = 1 Тогда
        ОтправляемоеПисьмо.Логин=Логин;
        ОтправляемоеПисьмо.Пароль=Пароль;
    КонецЕсли;
            
    ОтправляемоеПисьмо.Таймаут = 10000;
            
    Если ОтправляемоеПисьмо.Подключиться("Отправка")=0 Тогда
           Предупреждение("Отправка почты:Не удалось подключиться к серверу для отправки почты ! "+СокрЛп(СМПТ)+"!",30);
        Возврат;
    КонецЕсли;  
    ОтправляемоеПисьмо.АдресДляОтвета=СокрЛП(АдресОтправителя);
    ОтправляемоеПисьмо.АдресОтправителя=СокрЛП(АдресОтправителя);  
    ОтправляемоеПисьмо.ИмяОтправителя=СокрЛП(ИмяОтправителя);
    ОтправляемоеПисьмо.АдресПолучателя=СокрЛП(АдресПолучателя);
    ОтправляемоеПисьмо.Тема=СокрЛП(Тема);
    ОтправляемоеПисьмо.Важность=2;  // обычный
    Если ПустоеЗначение(Файл) = 0 Тогда
        ОтправляемоеПисьмо.Вложения=СокрЛП(Файл);
    КонецЕсли;
    ОтправляемоеПисьмо.ТипПисьма=0; // 0-text/plain
    ОтправляемоеПисьмо.Кодировка="windows-1251";
    Если ПустоеЗначение(ТелоПисьма) = 0 Тогда
        ОтправляемоеПисьмо.Тело=СокрЛП(ТелоПисьма);
    КонецЕсли;
    ОтправляемоеПисьмо.ПоказыватьПредупреждения=1;
    Если ОтправляемоеПисьмо.Отправить()=1 Тогда
        Сообщить("Отправка почты:Письмо "+СокрЛП(АдресОтправителя)+" успешно отправлено","i");  
        Форма.Параметр = 0;
    Иначе
        Предупреждение("Отправка почты:Не удалось отправить "+СокрЛП(АдресПолучателя)+"!",30);
        Форма.Параметр = 1;
    КонецЕсли;
    ОтправляемоеПисьмо.Отключиться();
    
КонецПроцедуры    // ПриОткрытии

Процедура Сформировать()
    
    

КонецПроцедуры

Цитата(Acid @ 30.04.14, 14:48) необходимо зарегистрироваться для просмотра ссылки
Для каких целей используется таймаут???

Можливо, тому, що буває зв'язок поганий.


 ! 

Правила, пункт 12
 
zetovich
Используете mail.ru?
У них вроде smtp по 465 (протокол шифрования SSL/TLS).
djdf_crash
zetovich, ні, ми його не використовуємо. В нас свій, внутрішній домен.
djdf_crash
Тема, ще актуальна, пліз хелп haha.gif
Домовик
а если в транзакцию Таймаут? и Иначе сообщать об ошибке и понаблюдать...
djdf_crash
Домовик, підкажіть як це зробити, так я тільки початківець в програмуванні. Дякую.
Домовик
Та я тоже новичок. Вернее будет обработку ошибки: Попытка Исключение КонецПопытки


Попытка
ОтправляемоеПисьмо.Таймаут = 10000;
Исключение
Сообщить("А не находит почему-то поле агрегатного объекта. Шо ж такое?");
КонецПопытки;

смотреть - какие далее ошибки пойдут по тексту.

а еще оно у вас после присвоения Логина-Пароля начинает кричать...
djdf_crash
Домовик, дякую, скористаюсь цим.
djdf_crash
І ще раз, доброго дня. Проблема знову ж таки актуальна. Виникає помилка "Поле агрегатного объекта не найдено - ОтправляемоеПисьмо.АдресДляОтвета=СокрЛП(АдресОтправителя); (АдресДляОтвета)". Підкажіть в чому проблема?
volodya1122
Цитата(djdf_crash @ 25.07.14, 11:24) необходимо зарегистрироваться для просмотра ссылки
І ще раз, доброго дня. Проблема знову ж таки актуальна. Виникає помилка "Поле агрегатного объекта не найдено - ОтправляемоеПисьмо.АдресДляОтвета=СокрЛП(АдресОтправителя); (АдресДляОтвета)". Підкажіть в чому проблема?


1. Яка операційна система на компютері? (підозрюю що Win7, або 2008-2012 сервер, і напевне 64-біт)
2. Яка версія платформи 1С.
3. Які ще компоненти, окрім РОМ-МАЙЛ використовуються?

+ Попробувати закоментувати цей рядок.
Домовик
Цитата(volodya1122 @ 25.07.14, 8:21) необходимо зарегистрироваться для просмотра ссылки
+ Попробувати закоментувати цей рядок.


Раніше рядок з атрибутом(?) Таймаут кричав,
якщо коментувати , будуть точно наступні рядки кричать.


автор, ви зазначуєте, що це лише в деяких випадках помилка відбувається?


ви помітили в яких?


хто день адміна святкує? допоможіть людині ).







може там пароль в різних розкладках для деяких адрес, і аутентифікація не відбувається.
з деяких адрес не відбувається відправка, чи адреса відпавки є постійною?
djdf_crash
Цитата(volodya1122 @ 25.07.14, 12:21) необходимо зарегистрироваться для просмотра ссылки
1. Яка операційна система на компютері? (підозрюю що Win7, або 2008-2012 сервер, і напевне 64-біт)
2. Яка версія платформи 1С.
3. Які ще компоненти, окрім РОМ-МАЙЛ використовуються?

+ Попробувати закоментувати цей рядок.


1. 2008 сервер 64-біт )
2. 1С 7,7
3. Тільки одна. РОМ-МАЙЛ

Цитата(Домовик @ 25.07.14, 13:06) необходимо зарегистрироваться для просмотра ссылки
Раніше рядок з атрибутом(?) Таймаут кричав,
якщо коментувати , будуть точно наступні рядки кричать.

так точно
Цитата
автор, ви зазначуєте, що це лише в деяких випадках помилка відбувається?
ви помітили в яких?

ага, тільки в одного користувача...який підключається по RDP
Цитата
хто день адміна святкує? допоможіть людині ).

ось як розрулиться ситуація, то обов'язково )))
Цитата
може там пароль в різних розкладках для деяких адрес, і аутентифікація не відбувається.
з деяких адрес не відбувається відправка, чи адреса відпавки є постійною?

я вже пробував свою адресу і пароль підставляв, не хтіт
Домовик
Цитата(djdf_crash @ 25.07.14, 10:54) необходимо зарегистрироваться для просмотра ссылки
ось як розрулиться ситуація, то обов'язково )))


ви не так зрозуміли. ті хто святкують Адміна, більше по вашому питанню можуть допомогти.


volodya1122
Цитата(djdf_crash @ 25.07.14, 14:54) необходимо зарегистрироваться для просмотра ссылки
ага, тільки в одного користувача...який підключається по RDP


Значить права доступу.

Перевірити:
1. Зайти під проблемним користувачем на сервері і перевірити.
2. Зайти під користувачем в якого все працює по РДП із проблемного компютера
3. якщо є ще один компютер, то переврити цих користувачів із цього компютера.

Цитата(djdf_crash @ 25.07.14, 14:54) необходимо зарегистрироваться для просмотра ссылки
2. 1С 7,7

Версія 27? Надіюсь

+ Ще одне.
В системі "Язикі і регіональні стандарти" для всіх користувачів повинні бути виставлені "РашаПутинская" (в трьох закладках)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.