|
подскажите почему не могу подключиться и отправить письмо? | ☑ | ||
---|---|---|---|---|
0
YamEgor
25.06.20
✎
07:45
|
добрый день! Не получается отправить письмо подскажите что не так делаю... самописная конфигурация, при проведении документа в процедуре ОбработкаПроведения(Отказ, РежимПроведения) делаю определенную проверку и если проверку проходим то надо отправить письмо с вложением и при проведении получаем ошибки:
1) Ошибка авторизации, введите правильный логин и пароль{Документ.Тестирование.МодульОбъекта(72)}: Значение не является значением объектного типа (Подключиться) 2) Во время отправки письма возникла ошибка{Документ.Тестирование.МодульОбъекта(81)}: Значение не является значением объектного типа (Послать) 3) {Документ.Тестирование.МодульОбъекта(88)}: Значение не является значением объектного типа (Отключиться) Email.Отключиться(); Процедура ОбработкаПроведения(Отказ, РежимПроведения) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Тестирование.Билет1 КАК Билет1, | Тестирование.Билет2 КАК Билет2, | Тестирование.Билет3 КАК Билет3 |ИЗ | Документ.Тестирование КАК Тестирование |ГДЕ | Тестирование.Ссылка = &Ссылка"; Запрос.УстановитьПараметр("Ссылка", Ссылка); РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); РезОтветов = 0; Ответ1 = 3; Ответ2 = 4; Ответ3 = 1; Пока Выборка.Следующий() Цикл Если Выборка.Билет1 = Ответ1 Тогда РезОтветов = РезОтветов+1; КонецЕсли; Если Выборка.Билет2 = Ответ2 Тогда РезОтветов = РезОтветов+1; КонецЕсли; Если Выборка.Билет3 = Ответ3 Тогда РезОтветов = РезОтветов+1 ; КонецЕсли; КонецЦикла; ВсеБилеты = 3; НабранныйПроцент = Цел(РезОтветов*100/ВсеБилеты); НабраноБалов = РезОтветов; Если РезОтветов >= 2 Тогда Документы.Тестирование.Печать(Ссылка); УчетнаяЗапись = Новый ИнтернетПочтовыйПрофиль; УчетнаяЗапись.ВремяОжидания = 120; ; УчетнаяЗапись.АдресСервераSMTP = "smtp.rambler.ru"; УчетнаяЗапись.АдресСервераPOP3 = "pop.rambler.ru"; УчетнаяЗапись.Пользователь = "*****@rambler.ru"; УчетнаяЗапись.ПользовательSMTP = "*****@rambler.ru"; УчетнаяЗапись.Пароль = "123"; УчетнаяЗапись.ПарольSMTP = "123"; УчетнаяЗапись.ПортSMTP = 465; УчетнаяЗапись.ИспользоватьSSLSMTP = Истина; УчетнаяЗапись.ПортPOP3 = 995; УчетнаяЗапись.ИспользоватьSSLPOP3 = Истина; УчетнаяЗапись.АутентификацияSMTP = СпособSMTPАутентификации.Login; Почта = Новый ИнтернетПочта; Письмо = Новый ИнтернетПочтовоеСообщение; Письмо.Отправитель.Адрес = "*****@rambler.ru"; Письмо.Отправитель.ОтображаемоеИмя = "Вася"; Письмо.Вложения.Добавить("C:\Users\777\Desktop\sert\Sertifikat.PDF", "Сертификат"); Письмо.Тема = "Ваш сертификат"; Получатель = Письмо.Получатели.Добавить("*****@yandex.ru"); Попытка Почта.Подключиться(УчетнаяЗапись); Исключение Сообщить("Ошибка авторизации, введите правильный логин и пароль" + ОписаниеОшибки(), СтатусСообщения.Важное); КонецПопытки; Текст = Письмо.Тексты.Добавить(); Текст.ТипТекста = ТипТекстаПочтовогоСообщения.ПростойТекст; Текст.Текст = "Текст письма, тест"; Попытка Почта.Послать(Письмо); Сообщить("Успех"); Исключение Сообщить("Во время отправки письма возникла ошибка" + ОписаниеОшибки(), СтатусСообщения.Важное) КонецПопытки; Почта.Отключиться(); КонецЕсли; КонецПроцедуры |
|||
1
Фрэнки
25.06.20
✎
07:53
|
вот даже не гляда в простыню - обработка проведения - это самое хреновое место, куда просто никто и никогда в здравом уме не ставит вызовы асинхронных подпроцессов.
Ну а дальше думай, что нужно сделать по другому. Хотя на вопрос о причине ошибки это не ответ |
|||
2
Галахад
гуру
25.06.20
✎
08:37
|
А где
Почта = Новый ИнтернетПочта;? |
|||
3
YamEgor
25.06.20
✎
08:48
|
(2) сразу после УчетнаяЗапись стоит Почта = Новый ИнтернетПочта;
|
|||
4
Галахад
гуру
25.06.20
✎
08:52
|
(3) Да, точно. Не заметил.
А с сервера вообще интернет окрыт? |
|||
5
ДенисЧ
25.06.20
✎
08:53
|
Отладчиком встать на нужную строку и посмотреть значения переменных - не предлагать?
|
|||
6
Ёпрст
25.06.20
✎
08:54
|
При проведении рассылать письма? Огонь!
|
|||
7
YamEgor
25.06.20
✎
09:13
|
(4) подскажите как отрывать..
|
|||
8
dka80
25.06.20
✎
09:14
|
Замени переменную Почта на Почта1
|
|||
9
JeHer
25.06.20
✎
09:14
|
(7) ---> бородатый дяденька
|
|||
10
YamEgor
25.06.20
✎
09:16
|
(5) отладчиком посмотрел Почта тип строка почему то
|
|||
11
dka80
25.06.20
✎
09:18
|
(10) см (8) Может у тебя есть реквизит на форме Почта
|
|||
12
YamEgor
25.06.20
✎
09:23
|
(11) да точно заменил Почта на Почта1 и все заработало Спасибо брат!!
|
|||
13
MyNick
25.06.20
✎
09:30
|
(12) но с обработкипроведения нужно ЭТО убрать
|
|||
14
YamEgor
25.06.20
✎
09:49
|
(13) а куда это можно убрать? где тогда это можно все сделать? надо чтобы когда документ проведется, т.е. условия будут выполнены тогда это все и отработать должно
|
|||
15
Fedor-1971
25.06.20
✎
11:15
|
(14) например, при проведении пиши в регистр сведений, типа ДокументыДляОтправки и регламентом отправляй, что отправилось, очищай или ставь признак отправки.
В ДО даже есть количество попыток отправки, т.е. пытаемся отправить 3 (или больше) раза, если не получилось, в дальнейшем запись не обрабатываем Вот выполнятся твои условия, а почта/интернет глюканёт и получишь непроведённый корректный документ. Кроме того, откроют на посмотреть и нажмут "Провести и закрыть" - и снова полетит сообщение Чуть больше глобального взгляда на всю систему |
|||
16
Галахад
гуру
25.06.20
✎
11:29
|
Хм. А чем именно плохо посылать письма при проведении?
|
|||
17
ДенисЧ
25.06.20
✎
11:31
|
(16) Неопределённостью времени этой отправки. И блокировкой транзакции в это время
|
|||
18
acht
25.06.20
✎
11:32
|
(16) Тем же, что и вести диалоги с пользователем.
Ну и на закуску - что ты будешь делать с уже отправленым письмом, если транзакция откатится? |
|||
19
Галахад
гуру
25.06.20
✎
11:56
|
(17) Это можно обойти отправив в фоне.
(18) Диалог предполагает интерактив, а тут не нужно ждать ответа. Тут да. Прикольно может получиться. "Вам почти выписали заказ. Почти..." |
|||
20
ДенисЧ
25.06.20
✎
11:56
|
(19) Можно. Но ТС же этого не делает...
|
|||
21
ДенисЧ
25.06.20
✎
11:57
|
И да, с откатом транзакции вопрос остаётся.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |