Имя: Пароль:
1C
1С v8
Отправка почты - шифрование SSL
,
0 01230123
 
22.09.14
10:31
Доброго времени суток.
У нас 1С:Предприятие 8.2.15.294; "Управление торговлей" (10.3.6.8)
На днях Яндекс совсем запретил почтовым программам заходить в почту без SSL шифрования. В результате наша 1С стала выдавать ошибку:
{ОбщийМодуль.УправлениеЭлектроннойПочтой.Модуль(1065)}: Ошибка при вызове метода контекста (Подключиться): Почтовый ящик пользователя "[email protected]" на сервере "pop.yandex.ru" не найден. Ответ сервера: "[AUTH] Working without SSL/TLS encryption is not allowed. Please visit http://help.yandex.ru/mail/mail-clients/ssl.xml.  sc=1mmfS78CEKo8"

Переключил порты в 1С со старых на 465/995 для smtp/pop3, но теперь выдаётся ошибка:
"Ошибка при вызове метода контекста (Подключиться): Время ожидания операции чтения истекло."

Подозреваю, что 1С не поддерживает SSL шифрование. Как быть - дорабатывать конфигурацию, или как здесь РИБ ошибка SSL переводить на 8.3? Что проще?
1 Нафс-Нафс
 
22.09.14
10:32
баян же. в поиск. 100 обсасывали. Если кратко - переходите на 8.3 или используйте stunnel или отказывайтесь от яндекса
2 DrZombi
 
гуру
22.09.14
10:33
(0) НЕ которые люди, советуют поднять свой почтовый сервер.
Хоть такой... http://courierms.narod.ru/
3 01230123
 
22.09.14
11:49
Перевёл на 1С:Предприятие 8.3 (8.3.5.1146)
Теперь выдаётся ошибка:
"SMTP greeting failure: 421 SMTP connection broken (reply)"
Подскажите, где в 8.3 настраивается работа через SSL-шифрование?
4 Поpyчик-4
 
22.09.14
12:02
(3) Нигде. Настраивается в конфигурации, то есть смотри настройки учетной записи. В УТ 10.3.6.8 нет штатной возможности установить защищённое соединение, поэтому или stunnel или лезь в конфу.
5 Нафс-Нафс
 
22.09.14
12:03
посмотри как в УТ 11 сделано
6 Нафс-Нафс
 
22.09.14
12:03
кстати ты смелый. народ по большей части ссыт переходить на 8.3. а ты раз и обновился. мужик.
7 Поpyчик-4
 
22.09.14
12:07
Mail.ru тоже
После 22 сентября на POP3 и SMTP-серверах останется только безопасная авторизация через протокол SSL.

Все срочно побежали на 8.3., а прежние конфы линии УТ 10.3 и УТ 11.0 всё равно SSL не поддерживают. Сколько же бабла франчи и фри наварят...
8 Нафс-Нафс
 
22.09.14
12:08
еще и тестовую версию платформы судя по всему накатил...
9 01230123
 
22.09.14
12:09
(6) народ по большей части ссыт переходить на 8.3. а ты раз и обновился...
Да проблем-то - скопировал базу на свой комп и издеваюсь над ней. Если получится, то уже на рабочей результат применю :-)
10 cons74
 
22.09.14
12:39
Бетатестерам почет! Берегите их.
11 lefthander
 
22.09.14
13:24
можно еще заюзать сервис qip.ru! они не перешли на шифрование.
12 ALoHA
 
22.09.14
13:41
Используй SSLtunel
13 Serginio1
 
22.09.14
13:46
14 01230123
 
22.09.14
14:19
(11) Это лишь продлит агонию. Вскоре qip.ru перейдёт на SSL и тогда - пункт (1) этой темы.
Решил доработать конфу 8.3 и не возвращаться к этому вопросу несколько лет.
15 zyto
 
22.09.14
16:02
А что надо сделать в 8.3 что бы SMTP от яндекса работало?
Кто может выложить рабочий код?
16 zyto
 
22.09.14
16:03
ЗЫ 8.3.5.1098
17 zyto
 
22.09.14
16:07
Всё... понял, надо порт 465 использовать а не 25 или 587 как писали ранее...
18 zyto
 
22.09.14
16:09
На всякий случай, вдруг кому поможет, вот рабочий код:

    Профиль = Новый ИнтернетПочтовыйПрофиль;
    Профиль.Пользователь = "[email protected]";
    Профиль.ПользовательSMTP = "[email protected]";
    Профиль.Пароль = "12345";
    Профиль.ПарольSMTP = "12345";
    Профиль.АдресСервераSMTP = "smtp.yandex.ru";
    Профиль.ПортSMTP = 465;
    Профиль.АутентификацияSMTP = СпособSMTPАутентификации.ПоУмолчанию;
    Профиль.ИспользоватьSSLSMTP = Истина;
    
    ТекСообщение = Новый ИнтернетПочтовоеСообщение;
    ТекСообщение.Тема = "Тестовое сообщение";    
    ТекСообщение.Получатели.Добавить("[email protected]");
    ТекСообщение.Отправитель = "[email protected]";
    ТекСообщение.Тексты.Добавить("Тестовое сообщение");
    
    ТекПочта = Новый ИнтернетПочта();
    ТекПочта.Подключиться(Профиль);    
    
    ТекПочта.Послать(ТекСообщение);
    
/все имена и пароли вымышленные/
19 Serginio1
 
24.09.14
18:42
13+ Сейчас проверил рабочий код

врап=новый COMОбъект("NetObjectToIDispatch45");
        
            smtp = "smtp.yandex.ru";
            login = "[email protected]";
            password = "xxxxxx";
            FromMail = "[email protected]";
                  //Авторизация на SMTP сервере
            Port=25;      
            mail = врап.СоздатьОбъект("System.Net.Mail.SmtpClient",smtp, Port);
            mail.EnableSsl = true;
            //Smtp.UseDefaultCredentials = false;
        
       //     mail.SmtpPort=25;
            mail.EnableSsl=true;
            mail.UseDefaultCredentials = false;
            mail.Credentials = врап.СоздатьОбъект("System.Net.NetworkCredential",login, Password);
            mail.DeliveryMethod = Врап.ПолучитьТип("System.Net.Mail.SmtpDeliveryMethod").Network;
            mail.DeliveryFormat = Врап.ПолучитьТип("System.Net.Mail.SmtpDeliveryFormat").SevenBit;

            
            //Формирование письма
             Message = врап.СоздатьОбъект("System.Net.Mail.MailMessage");
             MailAddressType= Врап.ПолучитьТип("System.Net.Mail.MailAddress");
            Message.From = врап.СоздатьОбъект(MailAddressType,FromMail);
            Message.To.Add(врап.СоздатьОбъект(MailAddressType,FromMail));
            Message.Subject = "Тест отправки почты SSL";
            Message.IsBodyHtml = true;
            Message.Body = "Тест отправки почты SSL";

            mail.Send(Message);//отправка

            Message.Dispose();
            mail.Dispose();
20 КонецЦикла
 
24.09.14
19:45
(17) На каждом почтовике развешаны настройки для 100500 программ
21 Serginio1
 
25.09.14
10:47
Не надо и DeliveryFormat  устанавливать.
По сути только указать  mail.EnableSsl=true;

врап=новый COMОбъект("NetObjectToIDispatch45");
        
            smtp = "smtp.yandex.ru";
            login = "[email protected]";
            password = "XXXXXXX";
            Кому = "[email protected]";
            Port=25;      
            
            mail = врап.СоздатьОбъект("System.Net.Mail.SmtpClient",smtp, Port);
            
            mail.EnableSsl = true;
            mail.UseDefaultCredentials = false;
            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 = true;
            Message.Body = "Тело Тест отправки почты SSL";

            mail.Send(Message);//отправка

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


http://msdn.microsoft.com/ru-ru/library/system.net.mail.smtpclient.enablessl(v=vs.110).aspx


Свойство EnableSsl задает, используется ли протокол SSL для доступа к указанному почтовому SMTP-серверу.

Значение по умолчанию для этого свойства также можно задать в файле конфигурации компьютера или приложения. Любые изменения, внесенные в свойство EnableSsl, переопределяют параметры файла конфигурации.

Класс SmtpClient поддерживает только расширение службы SMTP для Secure SMTP через протокол TLS, определенный в RFC 3207. В этом режиме сеанс SMTP начинается в незашифрованном канале, затем от клиента к серверу дается команда STARTTLS, чтобы переключиться на безопасное соединение с помощью протокола SSL. См. RFC 3207 опубликованный IETF для получения дополнительных сведений.

Методом альтернативного подключения называется тот, при котором сеанс SSL устанавливается заранее, до отправки команд протокола. Этот способ подключения иногда называют SMTP/SSL, SMTP через SSL или SMTPS. По умолчанию для него используется порт 465. Этот альтернативный способ подключения с помощью протокола SSL в настоящее время не поддерживается.

С помощью свойства ClientCertificates можно указать, какие клиентские сертификаты следует использовать для установки SSL-подключения. Свойство ServerCertificateValidationCallback позволяет отклонить сертификат, предоставленный сервером SMTP. Свойство SecurityProtocol позволяет указать версию протокола SSL, которую следует использовать.