Отправка почты из УПП

1. Cartman 20.02.15 09:15 Сейчас в теме
Настроил системную учетую запись. Галка требуется SMTP авторизация стоит. Проверка проходит успешно.
Но при попытке отправить письмо (например из печатной формы счета) ругается:
Системная учетная запись электронной почты. {ОбщийМодуль.УправлениеЭлектроннойПочтой.Модуль(1254)}: Ошибка при вызове метода контекста (Послать): Сервер требует аутентификации (SMTP error code 530)
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
3. Swetlana 13 20.02.15 09:20 Сейчас в теме
(1) Cartman, пишет что код smtp стоит неверный
4. Cartman 20.02.15 09:25 Сейчас в теме
(3) Swetlana, в смысле код? Пароль что ли?
Один и то же вроде на POP и SMTP.
5. Swetlana 13 20.02.15 09:30 Сейчас в теме
(4) Cartman, ну вот же - Сервер требует аутентификации (SMTP error code 530)
у тебя smtp=530 ?
6. Cartman 20.02.15 09:34 Сейчас в теме
(5) Swetlana, я же написал, что в системной учетной записи галка требуется SMTP авторизация стоит.
Отправка идет с нее.
7. MyPuK_OLD 20.02.15 09:47 Сейчас в теме
8. Cartman 20.02.15 09:52 Сейчас в теме
(7) MyPuK_OLD, нет. NAT, но изнутри как будто в настоящем интернете.
13. DrZombi 171 20.02.15 10:13 Сейчас в теме
(1)Начни использовать SSL

SSL (англ. Secure Sockets Layer — уровень защищённых сокетов) — криптографический протокол, который подразумевает более безопасную связь. Он использует асимметричную криптографию для аутентификации ключей обмена, симметричное шифрование для сохранения конфиденциальности, коды аутентификации сообщений для целостности сообщений. Протокол широко использовался для обмена мгновенными сообщениями и передачи голоса через IP (англ. Voice over IP — VoIP), в таких приложениях, как электронная почта, Интернет-факс и др. В настоящее время известно, что протокол не является безопасным[1]. SSL должен быть исключен из работы в пользу TLS (см. CVE-2014-3566).

И далее по ссылке :)
9. AlexInqMetal 68 20.02.15 09:55 Сейчас в теме
в 8.2 вроде так и не реализовали SSL на отправку может в этом проблема... хотя как же тогда тест проходит
10. tarassov 101 20.02.15 09:58 Сейчас в теме
Может быть дело в том, что сейчас многие почтовые сервера при отправке писем перешли на SSL (см. например http://help.yandex.ru/mail/mail-clients/ssl.xml или https://support.google.com/mail/answer/78775?hl=ru&ref_topic=3397501)
Поэтому в 1С для них нужно устанавливать
ПрофильПочты.ПортSMTP = "465";
ПрофильПочты.ИспользоватьSSLSMTP = Истина;

Но такая возможность есть только на платформе 8.3.5
11. Cartman 20.02.15 10:07 Сейчас в теме
Почтовый сервер мой. SSL на нем конечно есть, но и без шифрования соединяться он разрешает.
12. Cartman 20.02.15 10:10 Сейчас в теме
Если на SMTP в системной учетке поставить галку Использовать защищенную версию протокола SMTP - то при проверке вот такая ошибка:
Ошибка при вызове метода контекста (Подключиться): TLS/SSL failure for mail.***.ru: Invalid token, probably not an SSL server
14. DrZombi 171 20.02.15 10:14 Сейчас в теме
(12)Картман, не буди Кени. Дак создай SSL соединение :)
15. Cartman 20.02.15 10:16 Сейчас в теме
(14) DrZombi, зачем? Я хочу пользоваться типовым механизмом УПП для отправки писем. Стало понятно что шифрование толком не поддерживается - придется без него.
Но почему авторизация то не проходит?
16. MyPuK_OLD 20.02.15 10:33 Сейчас в теме
(15) Cartman, может пароль не верный указали при настройке почтовой учетки в 1с?
17. Cartman 20.02.15 10:40 Сейчас в теме
(16) MyPuK_OLD, на POP3 то тот же самый. Он один на ящик.
Копирую вставляю в оба поля.
18. Cartman 20.02.15 10:56 Сейчас в теме
Кстати, в модуле есть вот такое:
	Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(СистемнаяИнформация.ВерсияПриложения, "8.3.1.0") > 0 Тогда
		Профиль.ИспользоватьSSLPOP3 = УчетнаяЗапись.ИспользоватьЗащищенноеСоединениеДляВходящейПочты;
		Профиль.ИспользоватьSSLSMTP = УчетнаяЗапись.ИспользоватьЗащищенноеСоединениеДляИсходящейПочты;
	КонецЕсли;

Версия используется 8.3.5
Но почему-то все равно не подключается с шифрованием.
19. tarassov 101 20.02.15 11:25 Сейчас в теме
(18) Cartman,
У меня УТ 11.1
Посмотри, как выглядят там стандартные модули подключения, может поможет
&НаСервере
Функция ИнтернетПочтовыйПрофиль(ДляПолучения = Ложь)
	
	Профиль = Новый ИнтернетПочтовыйПрофиль;
	Если ДляПолучения Или ТребуетсяВходНаСерверПередОтправкой Тогда
		Если Протокол = "IMAP" Тогда
			Профиль.АдресСервераIMAP = СерверВходящейПочты;
			Профиль.ИспользоватьSSLIMAP = ИспользоватьЗащищенноеСоединениеДляВходящейПочты;
			Профиль.ПарольIMAP = ПарольДляПолученияПисем;
			Профиль.ПользовательIMAP = ИмяПользователяДляПолученияПисем;
			Профиль.ПортIMAP = ПортСервераВходящейПочты;
			Профиль.ТолькоЗащищеннаяАутентификацияIMAP = ИспользоватьБезопасныйВходНаСерверВходящейПочты;
		Иначе
			Профиль.АдресСервераPOP3 = СерверВходящейПочты;
			Профиль.ИспользоватьSSLPOP3 = ИспользоватьЗащищенноеСоединениеДляВходящейПочты;
			Профиль.Пароль = ПарольДляПолученияПисем;
			Профиль.Пользователь = ИмяПользователяДляПолученияПисем;
			Профиль.ПортPOP3 = ПортСервераВходящейПочты;
			Профиль.ТолькоЗащищеннаяАутентификацияPOP3 = ИспользоватьБезопасныйВходНаСерверВходящейПочты;
		КонецЕсли;
	КонецЕсли;
	
	Если Не ДляПолучения Тогда
		Профиль.POP3ПередSMTP = ТребуетсяВходНаСерверПередОтправкой;
		Профиль.АдресСервераSMTP = СерверИсходящейПочты;
		Профиль.ИспользоватьSSLSMTP = ИспользоватьЗащищенноеСоединениеДляИсходящейПочты;
		Профиль.ПарольSMTP = ПарольДляОтправкиПисем;
		Профиль.ПользовательSMTP = ИмяПользователяДляОтправкиПисем;
		Профиль.ПортSMTP = ПортСервераИсходящейПочты;
		Профиль.ТолькоЗащищеннаяАутентификацияSMTP = ИспользоватьБезопасныйВходНаСерверИсходящейПочты;
	КонецЕсли;
	
	Профиль.Таймаут = ДлительностьОжиданияСервера;
	
	Возврат Профиль;
	
КонецФункции

Функция ВариантыНастройкиПодключенияКСерверуSMTP()
	
	Позиция = Найти(АдресЭлектроннойПочты, "@");
	ИмяСервераВУчетнойЗаписи = Сред(АдресЭлектроннойПочты, Позиция + 1);
	
	Результат = Новый ТаблицаЗначений;
	Результат.Колонки.Добавить("СерверИсходящейПочты");
	Результат.Колонки.Добавить("ПортСервераИсходящейПочты");
	Результат.Колонки.Добавить("ИспользоватьЗащищенноеСоединениеДляИсходящейПочты");
	
	// стандартные настройки, подходящие для ящиков  gmail, yandex и mail.ru
	// имя сервера с префиксом "smtp.", защищенное соединение, порт 465
	ВариантНастройки = Результат.Добавить();
	ВариантНастройки.СерверИсходящейПочты = "smtp." + ИмяСервераВУчетнойЗаписи;
	ВариантНастройки.ПортСервераИсходящейПочты = 465;
	ВариантНастройки.ИспользоватьЗащищенноеСоединениеДляИсходящейПочты = Истина;
	
	// имя сервера с префиксом "mail.", защищенное соединение, порт 465
	ВариантНастройки = Результат.Добавить();
	ВариантНастройки.СерверИсходящейПочты = "mail." + ИмяСервераВУчетнойЗаписи;
	ВариантНастройки.ПортСервераИсходящейПочты = 465;
	ВариантНастройки.ИспользоватьЗащищенноеСоединениеДляИсходящейПочты = Истина;
	
	// имя сервера без префиксов, защищенное соединение, порт 465
	ВариантНастройки = Результат.Добавить();
	ВариантНастройки.СерверИсходящейПочты = ИмяСервераВУчетнойЗаписи;
	ВариантНастройки.ПортСервераИсходящейПочты = 465;
	ВариантНастройки.ИспользоватьЗащищенноеСоединениеДляИсходящейПочты = Истина;
	
	// имя сервера с префиксом "smtp.", защищенное соединение, порт 587
	ВариантНастройки = Результат.Добавить();
	ВариантНастройки.СерверИсходящейПочты = "smtp." + ИмяСервераВУчетнойЗаписи;
	ВариантНастройки.ПортСервераИсходящейПочты = 587;
	ВариантНастройки.ИспользоватьЗащищенноеСоединениеДляИсходящейПочты = Истина;
	
	// имя сервера с префиксом "mail.", защищенное соединение, порт 587
	ВариантНастройки = Результат.Добавить();
	ВариантНастройки.СерверИсходящейПочты = "mail." + ИмяСервераВУчетнойЗаписи;
	ВариантНастройки.ПортСервераИсходящейПочты = 587;
	ВариантНастройки.ИспользоватьЗащищенноеСоединениеДляИсходящейПочты = Истина;
	
	// имя сервера без префиксов, защищенное соединение, порт 587
	ВариантНастройки = Результат.Добавить();
	ВариантНастройки.СерверИсходящейПочты = ИмяСервераВУчетнойЗаписи;
	ВариантНастройки.ПортСервераИсходящейПочты = 587;
	ВариантНастройки.ИспользоватьЗащищенноеСоединениеДляИсходящейПочты = Истина;
	
	// имя сервера с префиксом "smtp.", незащищенное соединение
	ВариантНастройки = Результат.Добавить();
	ВариантНастройки.СерверИсходящейПочты = "smtp." + ИмяСервераВУчетнойЗаписи;
	ВариантНастройки.ПортСервераИсходящейПочты = 25;
	ВариантНастройки.ИспользоватьЗащищенноеСоединениеДляИсходящейПочты = Ложь;
	
	// имя сервера с префиксом "mail.", незащищенное соединение
	ВариантНастройки = Результат.Добавить();
	ВариантНастройки.СерверИсходящейПочты = "mail." + ИмяСервераВУчетнойЗаписи;
	ВариантНастройки.ПортСервераИсходящейПочты = 25;
	ВариантНастройки.ИспользоватьЗащищенноеСоединениеДляИсходящейПочты = Ложь;
	
	// имя сервера без префиксов, незащищенное соединение
	ВариантНастройки = Результат.Добавить();
	ВариантНастройки.СерверИсходящейПочты = ИмяСервераВУчетнойЗаписи;
	ВариантНастройки.ПортСервераИсходящейПочты = 25;
	ВариантНастройки.ИспользоватьЗащищенноеСоединениеДляИсходящейПочты = Ложь;
	
	Возврат Результат;
	
КонецФункции

Показать
20. lumox 15.06.15 10:32 Сейчас в теме
Подниму тему. ситуация та же. "Invalid token, probably not an SSL server".
Версия платформы 8.3.6
Почта = Новый ИнтернетПочта;

Профиль = Новый ИнтернетПочтовыйПрофиль;
Профиль.АдресСервераSMTP = "server";

Профиль.ПользовательSMTP = "user";
профиль.Пользователь = "user";
Профиль.ПарольSMTP ="user";

Профиль.ИспользоватьSSLSMTP = Истина;
Профиль.ПортSMTP = 465;
Профиль.ТолькоЗащищеннаяАутентификацияSMTP = Истина; 
профиль.АутентификацияSMTP=СпособSMTPАутентификации.Login;

Попытка
Почта.Подключиться(Профиль);
Исключение
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;

ПочтовоеСообщениеТекст = "ТЕСТ";
Вложения = Новый Структура;

текст.ПолучитьHTML(ПочтовоеСообщениеТекст, Вложения);

ПочтовоеСообщение = Новый ИнтернетПочтовоеСообщение;
ПочтовоеСообщение.Получатели.Добавить("test");
ПочтовоеСообщение.Тема = "тест заявки";
ПочтовоеСообщение.Тексты.Добавить(ПочтовоеСообщениеТекст,
ТипТекстаПочтовогоСообщения.HTML);

Почта.Послать(ПочтовоеСообщение);

Почта.Отключиться();
Показать
21. tarassov 101 15.06.15 11:05 Сейчас в теме
(20) lumox,
Проверил на 8.3.6
У меня работает без ошибок
Привожу свой текст процедуры отправки:
Функция  gmail(ПараметрыПисьма)
	Профиль = Новый ИнтернетПочтовыйПрофиль;
	Профиль.АдресСервераSMTP = "smtp.gmail.com";
	Профиль.ПортSMTP = "465";
	Профиль.ПользовательSMTP = "************@gmail.com";
	Профиль.ПарольSMTP = "************";
	Профиль.ИспользоватьSSLSMTP = Истина;
	Профиль.АутентификацияSMTP = СпособSMTPАутентификации.ПоУмолчанию;
	Профиль.ТолькоЗащищеннаяАутентификацияPOP3 = Истина;
	Профиль.Таймаут = 300;
	
	Адрес = ПараметрыПисьма.Кому;
	
	Сообщение = Новый ИнтернетПочтовоеСообщение;
	Сообщение.Тема  =ПараметрыПисьма.Тема;
	Сообщение.Тексты.Добавить(ПараметрыПисьма.Тело, ТипТекстаПочтовогоСообщения.HTML);
	Сообщение.Получатели.Добавить(Адрес);
	Сообщение.Отправитель = Профиль.ПользовательSMTP;
	
	Почта = Новый ИнтернетПочта;
	Попытка
		Почта.Подключиться(Профиль);
		Почта.Послать(Сообщение); 
		Успех = Истина;
	Исключение
		Успех = Ложь;
	КонецПопытки;
	Почта.Отключиться();
	
	Возврат Успех;
КонецФункции
Показать
rayastar; Jenya78; +2 Ответить
22. lumox 15.06.15 11:36 Сейчас в теме
(21) tarassov, к сожалению ситуация та же. Пытаюсь через локальный exchange отправить. принтеры и прочее не майкрософт клиенты спешно авторизуются и отправляют
24. Jenya78 16.09.16 15:43 Сейчас в теме
(21) tarassov,
+ 1 Взлетело на ukr.net
23. goliath-itd 18.06.15 18:22 Сейчас в теме
У нас для Exchange через CDO объект работает...
Письмо = Новый COMОбъект("CDO.Message");
Письмо.to		= Адрес;
Письмо.from		= СокрЛП(АдресОтправителя); 
Письмо.AddAttachment(ИмяФайла);
Письмо.Subject	= ТемаПисьма;
Письмо.TextBody	= ТекстПисьма;
Письмо.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing").Value		= 2;
Письмо.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver").Value		= СокрЛП(Почта_Сервер);
Письмо.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport").Value		= СокрЛП(Почта_Порт);
Письмо.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate").Value	= Почта_ТипАвторизации;
Письмо.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername").Value		= СокрЛП(Почта_Логин);
Письмо.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword").Value		= СокрЛП(Почта_Пароль);
Письмо.Configuration.Fields.Update();
Попытка
	Письмо.Send();
	Сообщить("Отправили письмо по адресу "  + СокрЛП(Адрес));
	Письмо = Неопределено; 
Исключение
	Сообщить("Ошибка отправки письма: " + Адрес  + "!!! " + ОписаниеОшибки());
	Письмо = Неопределено;
КонецПопытки;
Показать
25. AnryMc 724 16.09.16 15:48 Сейчас в теме
Ошибка при отправке почты (SMTP error code 535) http://www.forum.mista.ru/topic.php?id=387753


ЗЫ Сервер требует аутентификацию через SSL.
26. stvorl 966 19.09.16 23:14 Сейчас в теме
Несмотря на то, что штатно почтовые компоненты 8.2 не поддерживают защищенное соединение с серверами, можно завернуть их через stunnel. А там паркет старый. Подглючивает изредка, но работает.
27. progr-2008 118 26.04.20 00:02 Сейчас в теме
У меня:
Ошибка при вызове метода контекста (Подключиться): Произошла ошибка при работе с SMTP. Код ошибки: 25 (Отказ в установлении соединения со стороны сервера.)
Оставьте свое сообщение
Вопросы с вознаграждением