Имя: Пароль:
1C
1C 7.7
v7: Странность ROM-Mail
0 burrya
 
09.09.16
12:39
Если из ниже приведенной процедуры убрать код

        Состояние(СерверОтправки);
    Состояние(ПортОтправки);
    Состояние(Логин);
    Состояние(Пароль);
    Состояние(АдресОтправителя);
    Состояние(ИмяОтправителя);

То 1с при ее вызове вешается замертво на установке соединения с сервером, изначально там было Сообщить(), но я заменил на Состояние()

Всё работает, но все равно мучаюсь, ночами не сплю, почему так)))

Процедура глокОтправитьПочту(АдресПолучателя, Тело, Тема, Вложения = "", ТипПисьма = 2) export
    Попытка
        Если ЗагрузитьВнешнююКомпоненту("ROM-Mail.dll")=0 Тогда
            Сообщить("Не удалось загрузить ROM-Mail.dll");
            Возврат;
        КонецЕсли;
    Исключение
        Возврат;
    КонецПопытки;
    
    СерверОтправки = Константа.Emailsmtp;
    ПортОтправки = Константа.EmailПорт;
    Логин = Константа.EmailLogin;
    Пароль = Константа.EmailPass;
    
    АдресОтправителя = Константа.EmailАдресОтправителя;
    ИмяОтправителя = Константа.EmailИмяОтправителя;
    
    // этот код не удалять, без него не идет подключение к серверу
    Состояние(СерверОтправки);
    Состояние(ПортОтправки);
    Состояние(Логин);
    Состояние(Пароль);
    Состояние(АдресОтправителя);
    Состояние(ИмяОтправителя);
    // этот код не удалять, без него не идет подключение к серверу
    
    флАутентификацияПриОтправке = 0;

    ВК=СоздатьОбъект("AddIn.AddInMail");
    ВК.СерверОтправки=СокрЛП(СерверОтправки);
    ВК.ПортОтправки=СокрЛП(ПортОтправки);
    ВК.Логин=СокрЛП(Логин);
    ВК.Пароль=СокрЛП(Пароль);
    ВК.АутентификацияПриОтправке=флАутентификацияПриОтправке;
    Если ВК.Подключиться("Отправка")=0 Тогда
        Предупреждение("Не удалось подключиться к серверу!");
        Возврат;
    КонецЕсли;
    ВК.АдресОтправителя=СокрЛП(АдресОтправителя);
    ВК.ИмяОтправителя=СокрЛП(ИмяОтправителя);
    ВК.АдресПолучателя=СокрЛП(АдресПолучателя);
    ВК.Тема=СокрЛП(Тема);
    ВК.Тело="";
    ВК.Вложения=СокрЛП(Вложения);
    ВК.Кодировка="windows-1251";
    ВК.ТипПисьма=ТипПисьма;
    ВК.Тело=СокрЛП(Тело);
    
    Если ВК.Отправить() = 1 Тогда
        Состояние("Письмо успешно отправлено получателю " + АдресПолучателя);
    Иначе
        Состояние("Не удалось отправить письмо! Получатель " + АдресПолучателя);
    КонецЕсли;
    ВК.Отключиться();
КонецПроцедуры
1 burrya
 
09.09.16
13:27
похоже тема войдет в 1% неотвеченных )
2 linoblack
 
12.09.16
02:11
судя по тексту - связи никакой. единственное, что пришло в  голову - возможно команда "состояние" и "сообщить" смещает фокус или как-то инициализирует поток вывода данных. может в самой ВК что-то не так с этим.
3 varelchik
 
14.09.16
10:17
(3)В точку.
Сам разработчик знает эту проблему.
Я с ним общался лет десять назад.
Сказал что ничего править не будет и компонента уже давно не поддеживается.
Так что переползайте на dialmail, она надежна, да возможностей поболее чем у rom-mail.
4 Serginio1
 
14.09.16
10:37
5 varelchik
 
15.09.16
09:52
(4) нет.
6 Serginio1
 
15.09.16
16:20
(5) Я про
врап=СоздатьОбъект("NetObjectToIDispatch45");


+ Code
врап.УстЭтоСемерка();

smtp = "smtp.yandex.ru";
            login = "XXXXXX@yandex.ru";
            password = "XXXXXXX";
            Кому = "XXXXXX@YYYYYYYY.ru";

port=Врап.ChangeType("System.Int32",25);
            
            mail = врап.СоздатьОбъект("System.Net.Mail.SmtpClient",smtp,port);
            
            истина=Врап.ChangeType("System.Boolean","true");
            ложь=Врап.ChangeType("System.Boolean","false");
            
            mail.EnableSsl = истина;
            mail.UseDefaultCredentials = ложь;
            mail.Credentials = врап.СоздатьОбъект("System.Net.NetworkCredential",login, Password);
            mail.DeliveryMethod = Врап.ПолучитьТип("System.Net.Mail.SmtpDeliveryMethod").Network;
            
            Message = врап.СоздатьОбъект("System.Net.Mail.MailMessage");
            MailAddressType= Врап.ПолучитьТип("System.Net.Mail.MailAddress");
            Message.From = врап.СоздатьОбъект(MailAddressType,login);
            Message.To.Add(врап.СоздатьОбъект(MailAddressType,Кому));
            Message.Subject = "Тема Тест отправки почты SSL";
            Message.IsBodyHtml = истина;

            Message.Body = "Тело Тест отправки почты SSL";
            mail.Send(Message)//отправка




            Message.Dispose();
            mail.Dispose();

Ссылки здесь http://ru.stackoverflow.com/questions/527763/%d0%9a%d0%b0%d0%ba-%d0%b2%d1%8b%d0%b7%d0%b2%d0%b0%d1%82%d1%8c-%d0%bc%d0%b5%d1%82%d0%be%d0%b4-%d0%b8%d0%b7-c-%d0%b2-1%d0%a1/527802#527802
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан