Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Проблема с отправкой почты

Проблема с отправкой почты
Я
   YgrekXYZ_
 
07.11.16 - 07:45
Подскажите плиз, что не так.
Есть нечто, отправляющее почту.
Захожу на сервер, где стоит сервер приложений.
Запускаю "&НаКлиенте" работает.
Запускаю "&НаСервере" не работает.
Пишет проблема авторизации.

&НаСервере

Функция ОтправитьПисьмо()
    
    //Создание объектов
    Попытка
        loConfig = Новый COMОбъект("CDO.Configuration");
        loCdoMessage = Новый COMОбъект("CDO.Message");
    Исключение
        Сообщить(ОписаниеОшибки());
        Возврат Ложь;
    КонецПопытки;
    
    //Адрес получателя
    loCdoMessage.To = "************";
    loCdoMessage.From = "************";
    loCdoMessage.Subject = "Тема";
    loCdoMessage.BodyPart.CharSet = "Windows-1251";
    loCdoMessage.Textbody = "Текст сообщения1111";
    
    //Параметры сообщения
    loCdoMessage.Configuration = loConfig;
    //Адрес SMTP-Сервера
    loConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver").Value = "************";
    //Порт SMTP-сервера
    loConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport").Value = 25;
    //Имя пользвоателя SMTP-сервера
    loConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername").Value = "************";
    //Пароль пользвоателя SMTP-сервера
    loConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword").Value = "************";
    //Способ передачи сообщения:                                                                
    //  1 - Отправить сообщение с помощью локального каталога SMTP-службы
    //  2 - Отправить сообщение через сеть (по протоколу SMTP по сети).
    loConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing").Value = 2;
    //Проверка подлинности:
    //  0 - Без аутентифиации
    //  1 - Использовать базовую (открытым текстом) проверку подлинности.
    //  2 - Использовать проверку подлинности ntlm
    loConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate").Value = 2;
    //Использование протокола SSL
    //  0 - Не использовать
    //  1 - Использовать
    loConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl").Value = 0; //?(УчетнаяЗаписьЭП.ИспользоватьSSL,1,0);
    //Число секунд ожидания для службы SMTP
    loConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout").Value = 60;
    //Обновляем настройки
    loConfig.Fields.Update();
    
    //Отправка сообщения
    Попытка
        loCdoMessage.Send();
        Возврат "Ok";
    Исключение
        
        Сообщить(ОписаниеОшибки());
        Возврат ОписаниеОшибки();
    КонецПопытки;
    
КонецФункции
 
 
   wormselfish
 
1 - 07.11.16 - 07:58
А если клиент 1с предприятие запустить на машине где сервер, и запустить "&НаКлиенте", то тоже не работает?
   Mauser
 
2 - 07.11.16 - 08:07
Все проблемы от

loConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate").Value = 2;
   YgrekXYZ_
 
3 - 07.11.16 - 08:09
1. Если запускать, где сервер пашет "&НаКлиенте", не пашет на "&НаСервере"


2. Что не так ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate").Value = 2;

А что должно быть?
   anatoly
 
4 - 07.11.16 - 08:10
(0) зачем вы все СОМ-объекты используете, когда есть ИнтернетПочта???

(2) была та же проблема у одного клиента где тоже использовали CDO.Message (из какой то древнеющей версии перетащили) решилась переходом на ИнтернетПочта.
   YgrekXYZ_
 
5 - 07.11.16 - 08:24
0)зачем вы все СОМ-объекты используете
Захотелось :) Это не тема для обсуждения.

4) решилась переходом на ИнтернетПочта.
Будут такие же проблемы с авторизацией и с 1С-объектами.
   Mauser
 
6 - 07.11.16 - 08:42
(5) При использовании и не понимании ntlm авторизации - несомненно. Удачи и семь футов под килем
   YgrekXYZ_
 
7 - 07.11.16 - 08:44
6) почему на клиенте отрабатывает?
   YgrekXYZ_
 
8 - 07.11.16 - 08:46
зайдем с другой стороны, тоже проблемы с аутентификацией:


    ПочтПрофиль=Новый ИнтернетПочтовыйПрофиль();
    ПочтПрофиль.АдресСервераPOP3 = "10.78.2.26";
    ПочтПрофиль.АдресСервераSMTP = "10.78.2.26";
    ПочтПрофиль.Пользователь="*****************";
    ПочтПрофиль.Пароль = "*****************";
    ПочтПрофиль.АутентификацияSMTP = СпособSMTPАутентификации.Login;    
    ПочтПрофиль.ПользовательSMTP = "*****************";;
    ПочтПрофиль.ПарольSMTP = "*****************";;
    ПочтПрофиль.ВремяОжидания=60;
    ПочтПрофиль.ПортPOP3=110;
    ПочтПрофиль.ПортSMTP=25;
    
    ПочтЗаяв= Новый ИнтернетПочта();
    ПочтСообщение = Новый ИнтернетПочтовоеСообщение();
    ПочтСообщение.Кодировка="windows-1251";
    
    ПочтСообщение.Тема=СокрЛП("Тема");
    ПочтСообщение.Тексты.Добавить("Тело",ТипТекстаПочтовогоСообщения.HTML);
    
    ПочтСообщение.Получатели.Добавить("igor.tsyganov@rt.ru"); 
    ПочтСообщение.Отправитель.Адрес=СокрЛП("dr_orenburg@volga.rt.ru"); 
    ПочтСообщение.Отправитель.ОтображаемоеИмя=СокрЛП("dr_orenburg@volga.rt.ru");
    
    РезультатПосылки = Новый Структура;
    РезультатПосылки.Вставить("СтатусОтправки",Истина);
    РезультатПосылки.Вставить("Примечание","Сообщение успешно отправлено");
    
    Результат=Ложь; 
    ОписаниеОшибки="";
    
    Попытка
        ПочтЗаяв.Подключиться(ПочтПрофиль);
        Попытка 
            ПочтЗаяв.Послать(ПочтСообщение); 
            РезультатПосылки = Новый Структура;
            РезультатПосылки.Вставить("СтатусОтправки",Истина);
            РезультатПосылки.Вставить("Примечание","Сообщение успешно отправлено");
        Исключение     
            ОписаниеОшибки=ОписаниеОшибки();
            РезультатПосылки = Новый Структура;
            РезультатПосылки.Вставить("СтатусОтправки",Истина);
            РезультатПосылки.Вставить("Примечание",ОписаниеОшибки);
        КонецПопытки;    
        ПочтЗаяв.Отключиться();
        //Возврат РезультатПосылки;

        
    Исключение
        ОписаниеОшибки=ОписаниеОшибки();
        РезультатПосылки = Новый Структура;
        РезультатПосылки.Вставить("СтатусОтправки",Истина);
        РезультатПосылки.Вставить("Примечание",ОписаниеОшибки);
        //Возврат РезультатПосылки;

    КонецПопытки;
   YgrekXYZ_
 
9 - 07.11.16 - 08:49
Способы аутентификации все перепробовал.
Для логина ошибка так выглядит:
Ошибка при вызове метода контекста (Подключиться): Параметр команды не реализован (SMTP error code 504, 5.7.4 Unrecognized authentication type)

для прочих типа по умолчанию
Сервер требует аутентификации (SMTP error code 530, 5.7.1 Client was not authenticated)
   Забияка
 
10 - 07.11.16 - 09:14
+(9)Добавлю и свои 5 копеек.. Что странно, так это то, что в файловой версии работает, а в клиент-серверной выдает теже ошибки..
 
 Рекламное место пустует
   YgrekXYZ_
 
11 - 07.11.16 - 09:44
(6) захожу телнетом.
набираю ehlo - показывает поддержку ntlm
   YgrekXYZ_
 
12 - 07.11.16 - 09:50
если заработает 1С-объекты, то буду только рад.
код работал/работал на старом почтовике.
на новом пошли проблемы с авторизацией.

специально привел код от CDO.Message, чтобы было понятно при каких параметрах происходит нормальная посылка почты.
   DrZombi
 
13 - 07.11.16 - 10:00
(0) На сервере нет почты
Нет права на почту и т.д.
   DrZombi
 
14 - 07.11.16 - 10:01
(12) Вы сервер с ПК не путаете?
Понятия разделяете? :)
Что у вас подразумевается под словом "НаСервере"? ))
   DrZombi
 
15 - 07.11.16 - 10:02
   DrZombi
 
16 - 07.11.16 - 10:03
Во тут разжевано

Директивы выполнения кода в управляемых формах 1С 8

http://programmist1s.ru/direktivyi-vyipolneniya-koda1s-v-upravlyaemyih-formah/
   Забияка
 
17 - 07.11.16 - 10:15
(15)А каким образом это связано с авторизацией на почтовом сервере?
   YgrekXYZ_
 
18 - 07.11.16 - 10:18
(13) Что значит нет права на почту и т.д.
простое подключение телнетом проходит на ура.
как проверить права и т.д?

Этот же код нормально работал со старым почтовиком.
По идее запускался джоб в регламентированных задачах.

Вытащил код на форму, когда стал ковыряться в проблеме.
   anatoly
 
19 - 07.11.16 - 10:32
(5) "Будут такие же проблемы с авторизацией и с 1С-объектами."

я же внятно написал - таким способом проблема решилась.

(18) подключение телнетом по смтп?? ))

из любого обычного клиента _с_сервера_ почта отправляется?

(13) +100
   YgrekXYZ_
 
20 - 07.11.16 - 11:27
(19) Речь идет про 1с код в (8). В (0) по сути была попытка показать с какими параметрами уходит принципиально почта.

в (18) речь зашла про "права и т.д." поэтому и написал, что подключение телнетом проходит.
По идее, можно из телнета послать почту, но это нам ничего не даст. Про смтп ни слова не было.

С этого сервака сообщения каждое утро отсылаются через другой почтовик кодом в (8). Понятно, что логины/пароли/адреса другие.

То есть не в коде дело.
Понятно, что-то с какими-то правами настройками дело.
Вопрос с какими.

Про обычный клиент-аутлук: сейчас попробую поймать админов, поставить клиент.
Повторюсь на другой почтовик с этого же сервера без проблем уходит.

Может правда нечто и перекрыто.
   YgrekXYZ_
 
21 - 07.11.16 - 13:29
Н-да, действительно в оутлуке проблема с отправкой на новый почтовик ....
   anatoly
 
22 - 07.11.16 - 14:34
(20) я с удаленного компа пингую и подключаюсь по ssh на сервер (не 1С) где стоит почта - но на СМТП он никого извне не пускает, только из внутренней сети РДП. продолжать?...

(21) попробуй уже ИнтернетПочта. не долго же.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует