Две базы на 1С8 (платформа 8.3.10.2561) Торг и Бух. Должны при некоторых событиях отправлять майлы на указанные адреса. Торг - ОФ, Бух - УФ.
Раньше все работало идеально. Перешли на офис 365, отчего сменили почтовый сервер.
И началось - Бух отправляет норм ,Торг выдает
Ошибка при вызове метода контекста (Послать): Сервис отключен с разрывом канала (SMTP error code 421 421 SMTP connection broken (command))
Поставил в отладчике точку останова на Послать, (в обоих конфигурациях) сличил реквизиты объектов ПараметрыПочты и Письмо. Все совпадает!
Написал простенькую внешнюю обработку с единственной процедурой
Процедура ОтправитьТестПисьмо()
ПараметрыПочты = новый ИнтернетПочтовыйПрофиль;
ПараметрыПочты.АдресСервераSMTP = СокрЛП("smtp.office365.com");
ПараметрыПочты.АутентификацияSMTP = СпособSMTPАутентификации.ПоУмолчанию;
ПараметрыПочты.ПользовательSMTP = / здесь логин системной учетки - одинаков в обоих базах /;
ПараметрыПочты.ПарольSMTP= / Пароль на вход в офис 365 /;
ПараметрыПочты.ПортSMTP=587;
ПараметрыПочты.ПортIMAP=0;
ПараметрыПочты.ПортPOP3=0;
ПараметрыПочты.ИспользоватьSSLSMTP=Ложь;
ПараметрыПочты.Таймаут=600;
Письмо=новый ИнтернетПочтовоеСообщение;
Письмо.Тема="Тест электр почты";
Письмо.ИмяОтправителя=/ имя /;
Письмо.Отправитель=/ Адрес отправителя /;
Письмо.Получатели.Добавить( / Адрес получателя /);
Письмо.Тексты.Добавить("Проверка связи через майл офис 365");
Подключение=новый ИнтернетПочта;
Попытка
Подключение.Подключиться(ПараметрыПочты);
Подключение.Послать(Письмо,ОбработкаТекстаИнтернетПочтовогоСообщения.Обрабатывать,ПротоколИнтернетПочты.SMTP);
Сообщить ("Письмо отправлено успешно.");
Исключение
Сообщить ("Письмо не отправлено." + ОписаниеОшибки());
КонецПопытки;
Подключение.Отключиться();
КонецПроцедуры
Показать
(обработки пришлось написать две - поскольку ОФ и УФ - но это просто табло с 1 кнопкой, а процедура одинакова - см выше)
Подключение - проходит!! То есть адреса и все проч - опознает.
Но на Послать - вылет.
Клиент или Сервер - тоже не. Ставил в вышеприведенной процедуре директивы и так и так - без разницы.
Кто-нибудь может пояснить, в чем дело?
Я программист 1С8 с 2014 года. (а до того был на 1С7 с 2005). До фирмы где я сейчас (с сентября 2017) работал полгода в 1С франчайзи - так что опыт с 1С имею достаточный. Но вот такого не встречал!
Вопрос решил!!
Надо было поставить в Конфигурации - совместимость с 8.3.1. (было 8.2.13) и все прошло!
Правда возникла другая проблема - слетели самописные отчеты.
Так как, предполагаю, при реструктуризации таблиц - сбой на виртуальных, ОстаткиИ Обороты.
Сейчас пытаюсь решить.
А ЭТА ТЕМА ЗАКРЫТА
Спасибо!
Порт 587 - так отчего же работает оператор Подключиться? Тогда на нем бы вылетало.
И отчего проходит идеально - отправка из Бухгалтерии (такая же файловая база и на этом же компе)?
Про клиент/сервер - да, подумал. Бух - УФ, НаКлиенте, а Торг - ОФ, без директив (НаСервере). Знаю что Офис 365 - облачный, и могло быть так что сервер чего-то не видит, другие настройки на инет.
Но ставил директивы Клиент и Сервер и там и там - нет! Бух норм отправляет если я указываю и Клиент, и Сервер, а Торг глючит на обоих!
Главное же, уж сколько копал в гугле - нашел не слишком много, оказывается оф.365 + 1С не так часто встречается? - но там случаи когда ОБЕ базы должны глючить! Никак не объяснить, отчего одна стабильно Ок, вторая так же стабильно нет.
Порт 587 - так отчего же работает оператор Подключиться? Тогда на нем бы вылетало.
Думаю это особенность клиента 1С, когда вы пишите подключить он не производит реальное подключение, а только проверяет хост, при отправке он подключается уже непосредственно к серверу.
(4)
Главное же, уж сколько копал в гугле - нашел не слишком много, оказывается оф.365 + 1С не так часто встречается?
У офиса 365 хороший soap Сервис и в основном при интеграциях используют его, так же по умолчанию все не шифрованные порты закрыты.
(5)Тогда отчего проходит отправка из Бухгалтерии? Или такая разница в 1С между УФ и ОФ? Не знаю в настройках базы каких-то параметров, которые могли бы повлиять?
(6)Да в общем то нет, может версия платформы, или у вас подготовка письма идет дольше положенного и идет сброс соединения сервером по таймауту. по пробуйте в начеле письмо подготовить, а потом уже сделать подключение и отправку.
(7)Версия платформы одна в обоих случаях. Таймаут - увеличил с 30 до 600.
Не понял, что такое подготовка письма? Процедура вся показана - там письмо создается совсем коротенькое, все параметры присваиваются в 5 строк, и Подключение.
Что в нем еще надо готовить?
(8) Нужно знать таймаут сервера, а не клиента, таймаут на клиенте задается при подключении сколько ждать сервера.
Поменяйте местами в коде, подключение перед отправкой письма поставьте. И второй вариант, телнетом подключитесь к этому серверу по 587 порту, создаст подключение или нет, с того компьютера с которого почта не уходит
То есть пытаются как бы "одновременно войти вдвоем в одну дверь"?
Нет, не проходит. Сегодня я с утра копию бух вообще еще не запускал. А торг - выдал ошибку!
Вопрос - а почт.сервер, базы на одном компе как-то различает? Или для него все едино, идентификация по IT компа , а какая программа с него, это без разницы?
А если различает - то где в настройках базы, привязка к почт.серверу?
Но чудес нет - как-то выходит он базы различает? Если ОДИН И ТОТ ЖЕ код (приведен!) при запуске из разных баз дает разные результаты.
Как почта может знать, откуда пришло?
(15)Это важный параметр и зависит от того какие протоколы авторизации в сервере включены, оставьте так же как в рабочей конфигурации. Если у сервера есть несколько входов, то лучше каждое приложение конектилось по своему адресу сервера.
Так вопрос - что мне админу сказать? Как-то можно вытянуть, ЧЕМ различаются (на взгляд сервера) разные базы на моем компе?
И как их толкует почтовый сервер smtp.office365.com.
(18)Да ни как сервер их не толкует, он просто определяет что к нему подключился такой то клиент, то есть платформа. Админу сказать что бы для каждой базы создал свой аккаунт, а вы его пропишете. в своей обработке и будет знать откуда идут письма.
Но тогда ошибка должна была бы случайным образом вылезать то в одной то в другой базе. Отчего же привязка только к одной?
Хм, вот сейчас я вошел в нашу Бух Рабочую (не копию на моем компе) - а на сервере фирму. И (той же внешней обработкой) запустил тестовое письмо. Дошло норм!
А из Торг рабочей - глюк!
то есть четкая привязка именно к разным типам базы/конфы.
Бух - проходит. Торг - нет.
У нас Торг конфа доработанная, так я из эталонной УТ10 запустил - то же самое!!
(23)Отключите все задания связанные с почтой и одной обработкой из разных конфигураций отправьте письмо, только через интервал времени, может 1С после отправки письма еще держит соединение открытым.
А почтовых заданий (активных) в копии базы нет. Вернее, были но сейчас не работают так как настроены еще на старый почт.сервер (до офиса365). Я ведь для того сейчас и бьюсь, на копии, чтобы все это заработало - и в рабочую базу влить!
так что ничего там не может отправлять почту на порт 587 кроме этой моей обработки
Вопрос решил!!
Надо было поставить в Конфигурации - совместимость с 8.3.1. (было 8.2.13) и все прошло!
Правда возникла другая проблема - слетели самописные отчеты.
Так как, предполагаю, при реструктуризации таблиц - сбой на виртуальных, ОстаткиИ Обороты.
Сейчас пытаюсь решить.
А ЭТА ТЕМА ЗАКРЫТА
(32) у меня такая же беда сейчас.... совместимость тоже поставил на 8.3.1, но ошибка у меня следующая:
SMTP error code 451 451 5.7.3 STARTTLS is required to send mail
грабли остались лежать... требуется СТАРТТЛС...