Версия для печати темы (https://pro1c.org.ua/index.php?s=f36e7b61a8dbe0a57a5be884696edea2&showtopic=51388)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Помилка відправки пошти на GMAIL

Автор: volodya1122 05.04.19, 14:41

1C 8.3.11 звичайні форми. Конфігурація "Нетленка"
http://pro1c.org.ua/index.php?showtopic=28847 тут знайшов приклад як відправляти пошту на GMAIL. Але по цьому коду чомусь видає помилку

Цитата
Помилка при виклику методу контексту (Послать): Невідома помилка (SMTP error code 555 555 5.5.2 Syntax error. a24sm4715165ljd.32 - gsmtp)

чи дя цього потрібно обовязково встановлювати Stunnel?

Автор: Bernet 05.04.19, 14:45

volodya1122 @ Сегодня, 15:41 * ,
Stunel нужен был до платформы 8.3, когда ещё 1С не поддерживала SSL шифрование, в 8.3 же оно уже реализовано и не нужно использовать сторонние программы.
Использование SSL устанавливается одной строчкой в свойствах почтового профиля:

ИспользоватьSSLSMTP = Истина;

Автор: volodya1122 05.04.19, 14:55

Bernet @ Сегодня, 15:45 * ,
Так справа в тому щоя це прописав (як в прикладі було

Профиль.ИспользоватьSSLPOP3  = Истина;
Профиль.ИспользоватьSSLSMTP = Истина;

А помилка всеодно виникає

Ось повний код відправки
    Профиль = Новый ИнтернетПочтовыйПрофиль;
    
    Профиль.АдресСервераPOP3 = "pop.gmail.com";
    Профиль.АдресСервераSMTP = "smtp.gmail.com";
    Профиль.ВремяОжидания = 60;
    Профиль.Пароль           = "мой пароль";
    Профиль.Пользователь     = "моя почта@gmail.com";
    Профиль.ПортPOP3         = 995;
    Профиль.ПортSMTP = 465;
    Профиль.ПарольSMTP  = "мой пароль";
    Профиль.ПользовательSMTP = "моя почта@gmail.com";
    Профиль.ИспользоватьSSLPOP3  = Истина;
    Профиль.ИспользоватьSSLSMTP = Истина;
    Профиль.АутентификацияSMTP = СпособSMTPАутентификации.Login;    
    
    ИнтернетПочта = Новый ИнтернетПочта;
    Письмо = Новый ИнтернетПочтовоеСообщение;
    Текст = Письмо.Тексты.Добавить(СформироватьТекстПисьма());
    Текст.ТипТекста = ТипТекстаПочтовогоСообщения.ПростойТекст;
    Текст.Кодировка="UTF-8";
    Письмо.Тема = "Тема письма";
    Письмо.Получатели.Добавить(Константы.Пошта);
    
    Попытка
        ИнтернетПочта.Подключиться(Профиль);    
    Исключение    
        Сообщить("Ошибка подключения "+ОписаниеОшибки());
    КонецПопытки;
    Попытка
        ИнтернетПочта.Послать(Письмо);    
    Исключение    
        Сообщить("Ошибка отправки "+ОписаниеОшибки());
    КонецПопытки;

    ИнтернетПочта.Отключиться();

Автор: Bernet 05.04.19, 15:07

volodya1122 @ Сегодня, 15:55 * ,
Выложу свой код, который работал в одной из баз, собрал из кусочкков моих процедур, проверил - работает:
Код (работает)

Если НЕ ЗначениеЗаполнено(УчетнаяЗапись) Тогда  // УчетнаяЗаписьДляРассылки - справочник где хранятся параметры подключения
        УчетнаяЗапись = Константы.УчетнаяЗаписьДляРассылки.Получить();    
    КонецЕсли;
    
    Профиль = Новый ИнтернетПочтовыйПрофиль;
    
    Профиль.АдресСервераPOP3 = УчетнаяЗапись.POP3Сервер;   // pop.gmail.com
    Профиль.АдресСервераSMTP = УчетнаяЗапись.SMTPСервер;   // smtp.gmail.com
    Если УчетнаяЗапись.ВремяОжиданияСервера > 0 Тогда
        Профиль.ВремяОжидания = УчетнаяЗапись.ВремяОжиданияСервера;  // таймаут в секундах, у меня было 30 (число)
    КонецЕсли;
    Профиль.Пароль           = УчетнаяЗапись.Пароль;    // пароль от вашей почты с которой идет отправка
    Профиль.Пользователь     = УчетнаяЗапись.Логин;     // ваша почта с которой идет отправка
    Профиль.ПортPOP3         = УчетнаяЗапись.ПортPOP3;  // 995    
    Профиль.ПортSMTP         = УчетнаяЗапись.ПортSMTP;  // 465
    
    Профиль.ИспользоватьSSLSMTP = Истина;
    Профиль.ИспользоватьSSLPOP3 = Истина;
    
    Если УчетнаяЗапись.ТребуетсяSMTPАутентификация Тогда   // Истина
        Профиль.АутентификацияSMTP = СпособSMTPАутентификации.ПоУмолчанию;
        Профиль.ПарольSMTP         = УчетнаяЗапись.ПарольSMTP;  // пароль от вашей почты с которой идет отправка
        Профиль.ПользовательSMTP   = УчетнаяЗапись.ЛогинSMTP;   // ваша почта с которой идет отправка
    Иначе
        Профиль.АутентификацияSMTP = СпособSMTPАутентификации.БезАутентификации;
        Профиль.ПарольSMTP         = "";
        Профиль.ПользовательSMTP   = "";
    КонецЕсли;
    
    
    ИнтернетПочта = Новый ИнтернетПочта;
    Попытка
        ИнтернетПочта.Подключиться(Профиль);
    Исключение
        ТекстОшибок = ТекстОшибок + Символы.ПС + (Строка(УчетнаяЗапись) + ". " + ОписаниеОшибки());
        Возврат ТекстОшибок;
    КонецПопытки;

    
    ПочтовоеСообщение = Новый ИнтернетПочтовоеСообщение;
                            
    ПочтовоеСообщение.Кодировка       = "utf-8";
    ПочтовоеСообщение.ИмяОтправителя  = СокрЛП(УчетнаяЗапись.АдресЭлектроннойПочты);
    ПочтовоеСообщение.Отправитель     = СокрЛП(УчетнаяЗапись.АдресЭлектроннойПочты);
    ПочтовоеСообщение.Тема            = "Тест";
    
    Получатель = ПочтовоеСообщение.Получатели.Добавить();
    Получатель.Адрес           = СокрЛП(ПолучательПисьма); // email получателя
    Получатель.ОтображаемоеИмя = СокрЛП(ПолучательПисьма); // email получателя
    Получатель.Кодировка       = "utf-8";

    ТекстСообщения = ПочтовоеСообщение.Тексты.Добавить();
    ТекстСообщения.Кодировка = "utf-8";
    ТекстСообщения.ТипТекста = ТипТекстаПочтовогоСообщения.ПростойТекст;
    ТекстСообщения.Текст      = "Привет мир!";  
    
    Попытка
        ИнтернетПочта.Послать(ПочтовоеСообщение);
    Исключение
        ТекстОшибок = ТекстОшибок + Символы.ПС + (Строка(УчетнаяЗапись) + ". " + ОписаниеОшибки());
        Возврат ТекстОшибок;    
    КонецПопытки;


В комментариях написал значения полей, которые хранятся у меня в справочнике. Пользуйтесь без лишнего ПО =)

Автор: volodya1122 05.04.19, 15:19

Bernet @ Сегодня, 16:07 * ,

Та сама помилка;
Помилка при виклику методу контексту (Послать): Невідома помилка (SMTP error code 555 555 5.5.2 Syntax error. j12sm242252lfj.83 - gsmtp)

Автор: Bernet 05.04.19, 15:31

volodya1122 @ Сегодня, 16:19 * ,
у меня письмо пришло =) Проверьте у почты разрешали ли вы в настройках доступ из сторонних приложений, может там валится. Галочка какая-то в настройках была

Автор: Petre 05.04.19, 15:31

volodya1122 @ Today, 15:19 * ,
Спробуйте замість

"моя почта@gmail.com"

використовувати формат
"<моя почта@gmail.com>"

Автор: Bernet 05.04.19, 15:35

Petre @ Сегодня, 16:31 * ,
та вряд ли - у меня и так прокатило, обычной строкой

Автор: volodya1122 05.04.19, 15:37

Petre @ Сегодня, 16:31 * ,
"<моя почта@gmail.com>"
Тепер вже дві помилки:
Ошибка подключения {Документ.Виклик.Форма.Форма1.Форма(492)}: Помилка при виклику методу контексту (Подключиться): Can not authenticate to SMTP server: 535 5.7.8 http://pro1c.org.ua/redirect.php?https://support.google.com/mail/?p=BadCredentials e17sm4733884ljj.20
Ошибка отправки нова версыя {Документ.Виклик.Форма.Форма1.Форма(519)}: Помилка при виклику методу контексту (Послать): Дана операція не може бути виконана, так як адресу SMTP сервера не вказано.

З настройкою пошти все вірно. так як я її використовую для відправки із 1с7 (правда на іншому компютері )

Автор: Bernet 05.04.19, 15:56

volodya1122 @ Сегодня, 16:37 * ,
http://pro1c.org.ua/redirect.php?https://dropmefiles.com/RIQly, возможно просмотрели что-то

Автор: volodya1122 05.04.19, 15:57

Незрозуміло що за глюк
Писав так:
Письмо.Получатели.Добавить(Константы.Пошта);
і так
Письмо.Получатели.Добавить(СокрЛП(Константы.Пошта));
Давало помилку.

А коли явно прописав
Письмо.Получатели.Добавить("ПоштаОтримувача@gmail.com");
то відправилось


Нарешті зрозумів чому......
В 1с8 константи потрібно Получить(). А я по старій памяті писав як в 1с7 просто Константы.Пошта.

Дякую за терпіння. Все працює

Автор: Vofka 05.04.19, 20:32

Цитата(volodya1122 @ 05.04.19, 16:57) *
Дякую за терпіння. Все працює

Для спасибо есть специальная кнопочка.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua