Spring Boot Mail: рассылка почты пользователям, активация аккаунта

  Рет қаралды 56,721

letsCode

letsCode

6 жыл бұрын

Spring Boot Web Application (MVC): Добавляем оповещения пользователей по электронной почте, добавляем механизм проверки почтового ящика пользователя (активация аккаунта)
Код из видео:
github.com/drucoder/sweater/t...
Первым делом добавим зависимость на Spring Mail.
Зависимость на Spring Mail:
gist.github.com/drucoder/c0ef...
Для оповещения пользователя по почте прежде всего нужно куда-то сохранить его адрес. Добавим в доменный объект User поля email и activationCode. После чего на форме регистрации выведем поле ввода почтового адреса. Следующим шагом модифицируем код контроллера регистрации и сервиса работы с пользователями, для сохранения информации о почте и добавим уникальный код активации для подтверждения того, что пользователь ввёл адрес ящика, к которому действительно у него есть доступ.
После этого создадим сервис MailSender, который будет осуществлять рассылку почты. Также нам потребуется создать конфигурационный класс MailConfig, в котором мы будем содавать инстанс класса JavaMailSenderImpl, осуществляющего низкоуровневые оперции с сервером почты. Для этого класса введем в файл application.properties следующие параметры:
gist.github.com/drucoder/5bd2...
Настройки доступа к почтовому серверу Яндекса:
yandex.ru/support/mail/mail-c...
После этого добавим в UserService код рассылки почтовых уведомлений о необходимости регистрации и добавим в RegistrationController код, принимающий запрос активации от пользователя. Данный код будет проверять наличие пользователя в БД, имеющего такой код активации, после чего код будет удалён из БД.
Для проверки корректности работы приложения можно использовать сервис времменых почтовых ящиков:
temp-mail.org/ru/view/a0a6cfd...
➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
➡ Твиттер: / letscodedru
➡ Чат в Discord: / discord
➡ Группа Вконтакте: letscodedru
➡ Канал в Telegram: t.me/letsCode_dru
➡ Чат в Telegram: t.me/joinchat/FeiP9xEhqHajfqh...
➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
Поддержать проект:
➡ Patreon / letscodedru
➡ Яндекс.Деньги money.yandex.ru/to/4100145167...
➡ PayPal paypal.me/letscodedru
➡ Qiwi qiwi.me/letscode
➡ WebMoney/BitCoin funding.webmoney.ru/d/drucoder
➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
Ссылка на канал: / @letscodedru
Ссылка на Яндекс.Дзен: zen.yandex.ru/media/id/5ac209...

Пікірлер: 265
@user-se5ub7ft1o
@user-se5ub7ft1o 5 жыл бұрын
Ух, я аж вспотел от такого интенсива!) Минута видео как пол часа тренировки))
@user-pu7kb3il2y
@user-pu7kb3il2y 6 жыл бұрын
Спасибо большое за курс! Очень жду отдельное видео по разбору и написанию тестов!
@just-a-man
@just-a-man 5 жыл бұрын
Очередной раз очень классный урок, в котором доходчиво объясняется такая сложная задача. Рэспект автору!
@D.P._
@D.P._ 5 жыл бұрын
Очень редко оставляю комменты, но блин, круто же! Классные скринкасты! Отлично подано! Иногда хочется больше деталей, но оно же всегда, хочется больше;) Завтра поставлю под каждым видео отзыв)) Просто - спасибо!
@maxmaroff260
@maxmaroff260 4 жыл бұрын
Очень хорошие и полезные у Вас уроки. Спасибо, огромное!!!
@Igor_Litvinyuk
@Igor_Litvinyuk 6 жыл бұрын
Огромное спасибо за Ваш труд. Хорошее изложение материала + самому немножко почитать и поковырять и все более чем понятно
@user-ss3yc8cc2y
@user-ss3yc8cc2y 4 жыл бұрын
Уроки супер. С третьего раза сделал, видимо скобку где-то не закрывал. Осталось побороть яндекс чтоб не блокировал меня как спам. Автору респект.
@lanalystan9581
@lanalystan9581 3 жыл бұрын
Круто! Огромное огромное спасибо за видео! Не понимаю, почему так мало подписчиков... думала не менее 150 тыс. должно быть...
@artemy99
@artemy99 2 жыл бұрын
Долго-долго мучался с почтой. Тот длинный код, который вам покажут в Яндексе при двухфакторной аутентификации, нужно поставить в application properties, а почту оставить прежнюю, чтобы вы через свою же почту, но с другого сервера могли все посылать) Главное что все получилось. Огромное спасибо!!
@user-ih7yr2sj5y
@user-ih7yr2sj5y 4 жыл бұрын
Самые качественные видео на эту тему, /и в рунете, и на англ/ Крутой подход, спасибо автору. Следовал видео и получилось сделать интересный проект, который любопытно "докручивать" самому. Советы автора помогают не утонуть в деталях и не потерять мотивацию. Спасибо ребятам в комментах - если вы напоролись на ошибку, решения находил здесь же. Успехов! Хватит читать комменты, идите кодить)
@aliaksandrcharnetski9773
@aliaksandrcharnetski9773 4 жыл бұрын
Для gmail у меня заработало с такими настройками: 1) в самой почте включать IMAP не надо, нужно зайти на почту, затем в правом верхнем углу нажать на значок своего аккаунта и в выпадающем меню выбрать "управление аккаунтом Google". После этого вас редирекнет на новую вкладку в браузере, где нужно слева в меню выбрать пункт "Безопасность". Далее в появившемся меню выключить двухэтапную аутентификацию, а затем ниже в списке включить "Ненадежные приложения, у которых есть доступ к аккаунту"; 2) в своем проекте в файле 'application.properties' указываем следующие настройки: spring.mail.host=smtp.gmail.com spring.mail.port=587 spring.mail.username=yourMail@gmail.com spring.mail.password=passwordFromYourEmail spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.starttls.enable=true spring.mail.properties.mail.smtp.ssl.trust=smtp.gmail.com P.S.: в видеуроке на 6:05 автор говорит, что в версии Спринга на момент монтажа видеоурока "JavaMailSender почему-то поломатый". На данный момент это исправлено, поэтому класс MailConfig.java теперь не нужен (его можно удалить), так как Спринг сам создаст необходимый бин, считав необходимые настройки с вашего файла 'application.properties'. А еще в пакете 'service' переименуйте файл 'MailSender.java' в например 'SmtpMailSender.java', так как скорее всего у вас возникнет ошибка при создании бина. Дело в том, что имя 'MailSender' сильно похоже на какое-то зарезервированное имя, которое уже использует Спринг. Надеюсь, кому-нибудь поможет)) P.P.S.: автору канала огромнейшее спасибо за труд!
@motiversia4714
@motiversia4714 4 жыл бұрын
Добрий человек, поскажи! Как ето личить? There was an unexpected error (type=Internal Server Error, status=500). Failed messages: javax.mail.SendFailedException: Invalid Addresses; nested exception is: com.sun.mail.smtp.SMTPAddressFailedException: 553-5.1.3 The recipient address is not a 553 5.1.3 valid RFC-5321 address. m5sm224811lfb.56 - gsmtp
@vitalykhan1354
@vitalykhan1354 4 жыл бұрын
спасибо! очень полезный коммент. оптимальный вариант настроек. без лишнего конфигурирования бина.
@vitalykhan1354
@vitalykhan1354 4 жыл бұрын
хотя у меня заработало без этих строк spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.ssl.trust=smtp.gmail.com
@user-vx7tp3qv7o
@user-vx7tp3qv7o 3 жыл бұрын
Спасибо большое за подсказку! долго мучалась, отчаялась, теперь двигаюсь дальше!
@aivlad572
@aivlad572 3 жыл бұрын
Спасибо, добрый человек, за подсказку!!!!! Очень помог!)))!)))
@user-pz6ss6qo6y
@user-pz6ss6qo6y 5 жыл бұрын
Все уроки на одном дыхании. Спасибо!
@user-ln2vp4ii6p
@user-ln2vp4ii6p 4 жыл бұрын
Спасибо за замечательные видео) Всё последовательно, чётко изложено.
@romanmotovilov129
@romanmotovilov129 4 жыл бұрын
Отлично!!! Великолепный урок! На одном дыхании смотрится!
@antonfedoruk1037
@antonfedoruk1037 4 жыл бұрын
Автору очередное СПАСИБО за крутой видос!!! То чуство когда уже не первый раз после просмтора очередного кусочка видео выскакивает ошибка и ты тратишь пол часа на её фикс, потом включаешь видео и далее идет обьяснение как фиксится баг(facepalm)
@StormcoderChannel
@StormcoderChannel 4 жыл бұрын
Уважаемые коллеги, спешу поделиться важным открытием, над которым бился три дня. Нормальной работе описанной в уроке системы может препятствовать антивирус (в моем случае Avast). После его отключения почта полетела с характерным шуршанием. PS: Автору видео огромное СПАСИБО за труды.
@timyp64
@timyp64 3 жыл бұрын
СПАСИБО ОГРОМНОЕ!!!!!!!!
@D.P._
@D.P._ 5 жыл бұрын
Спасибо! Отличный и лаконичный материал!
@mariaelagina712
@mariaelagina712 3 жыл бұрын
Большое спасибо за видео. Если кто-то тоже будет использовать почту рамблера, то в настройках следует перйти в почтовые программы - ВКЛ доступ к почтовому ящику с помощью почтовых клиентов.
@dmitry.23
@dmitry.23 2 жыл бұрын
не работает, 550 ошибка, rejected as apsm, доступ почтовым программам включил.
@rustamasylkhan3169
@rustamasylkhan3169 4 жыл бұрын
Дружище, очень нравится твоя подача материала, не мог бы ты показать как создать корзину интернет магазина при помощи coookies
@PostMapping
@PostMapping 2 жыл бұрын
Возможно кому-то поможет, хочу предостеречь всех, кто после каждого урока пушит проект на гитхаб, чтобы были повнимательнее. Всегда снимите галочку от application.properties с вашими паролями и логинами от почты. Иначе от вас начнется рассылаться спам. Сам с таким сталкивался недавно)
@iryna6389
@iryna6389 5 жыл бұрын
Спасибо! Классное видео!
@aleksei4604
@aleksei4604 4 жыл бұрын
да, и правда магия) благодарю!
@romoshi
@romoshi Жыл бұрын
Кто из 2023. У гугла теперь в другом месте добавление пароля для сторонних приложух. Теперь это находится в 2ух факт аунт Включаете её, и таам в самом низу добавить можно будет пароль. Это и делаете. Поздравляю Вы великолепны.
@J0nSneG
@J0nSneG 4 жыл бұрын
я решил использоватье gmail - настройки конечно изрядно отличаются - пришлось повозиться. Спасибо за уроки - очень круто!
@caffeinejavacode1475
@caffeinejavacode1475 4 жыл бұрын
Привет! расскажи как сделал для gmail ?
@Nikita-hu9bk
@Nikita-hu9bk 4 жыл бұрын
Не скажет, он жадный.
@caffeinejavacode1475
@caffeinejavacode1475 4 жыл бұрын
@@Nikita-hu9bk Я уже описал как это сделать!
@Nikita-hu9bk
@Nikita-hu9bk 4 жыл бұрын
@@caffeinejavacode1475 Да, нашел. Только есть одна проблема, если делать как ты, то у тебя в БД не сохраняется activation_code у пользователя.
@caffeinejavacode1475
@caffeinejavacode1475 4 жыл бұрын
@@Nikita-hu9bk там дальше будет проблема с выводом ошибок у полей. Может поможешь? в 11-м уроке с Валидацией. там мой комент есть.
@volodymyr9958
@volodymyr9958 4 жыл бұрын
Доброго времени суток, Андрей. нравится как вы выкладываете уроки по программированию. У вас хорошая манера речи просто заслушиваюсь. А теперь к делу. Есть несколько идей для видео. 1 / вы написали сайт свитер и показали как через емеил делать подтверждения действий, но а) не показали как делать автоматический выход из аккаунта при изменении почты пользователя чтобы обновился спринг бут Секюрити, чтобы пользователь заново залогинился а Секюрити обновился, 2) или как сделать чтобы пользователя не розлогинивать и обновить секьюрити (ps секьюрити завязанными на почте). 2 / как сделать чтобы на сайте встроювалась автоматически гугл мапс, если каждый пользователь вводит на сайте свой адрес?
@wayneinteressierts9973
@wayneinteressierts9973 2 жыл бұрын
Клёво, спасибо!
@renniqs1084
@renniqs1084 6 жыл бұрын
Ждем докер + микросервисы.
@letsCodeDru
@letsCodeDru 6 жыл бұрын
Докер я давно уже запланировал. Будет обязательно. А про микросервисы чего именно интересует? Взаимодействие? контейнеры-деплой? управление зоопарком сервисов?
@renniqs1084
@renniqs1084 6 жыл бұрын
Я думаю, потом готовое приложение разбить на микросервисы и показать как все элементы будут друг с другом взаимодействовать, и как раз можно будет применить очереди сообщений, как в нижнем комментарии. Спасибо!!
@java_couch
@java_couch 5 жыл бұрын
@@letsCodeDru сейчас весь энтерпрайз на микросервисах-покажи от начала до конца как создается этот комплекс ,как все это взаимодейтсвует.Желательно на примере какого то онлайн магазина,тоесть чтобы была база данных по товарам,пользователям,транзакции и тд- это был бы хороший опыт для людей идущих в энтерпрайз
@flatmapper
@flatmapper 4 жыл бұрын
Спасибо
@fmw14
@fmw14 5 жыл бұрын
Единственный минус - бутстрап прикрутили слишком рано, теперь тяжело читать конфигурацию . А так все классно, спасибо за видео
@letsCodeDru
@letsCodeDru 5 жыл бұрын
В жизни по-другому редко бывает :(
@javohirabduxakimov8710
@javohirabduxakimov8710 4 жыл бұрын
The best tutorials
@user-ty3tc4ee3z
@user-ty3tc4ee3z 4 жыл бұрын
Разве не нужно было установить user.active = false а при активации не только удалять кода активации, но и менять на user.active = true ?
@hasanov2094
@hasanov2094 5 жыл бұрын
Спасибо большое еще раз за уроки, только один вопрос: как задать в качестве отправителя почтовый адрес ,защищенный двухэтапной аутентификацией? Выводится ошибка , пришлось создавать новый
@donyfutura7308
@donyfutura7308 3 жыл бұрын
Жаль, что не показали, что верификация работает на деле, чтоб нельзя было авторизоваться, кто не перешел по ссылке. Я добавил этот функционал, довольно, странном способом, в методе loadByUsername изменил код, чтоб он возвращал пользователя только без кода.
@atg8798
@atg8798 6 жыл бұрын
Ждём капчу и деплой :)
@erlan991
@erlan991 Жыл бұрын
Отличный видеоурок. У меня вопрос, как включить проверку isActive при логгировании, потому что он пропускает и true и false
@viacheslav_chudnovskyi
@viacheslav_chudnovskyi Жыл бұрын
Как запретить пользователю авторизоваться если аккаунт не был подтвержден??
@bifourcator
@bifourcator 4 жыл бұрын
После успешной регистрации хотелось бы вывести сообщение для пользователя, мол дружище, проверь почту - там код активации. Но у нас в методе идет редирект на другую страницу. Пробовал загнать сообщение и в model.addAttribute("message", "Check email!"); и при помощи RedirectAttributes redir.addFlashAttribute("message", "Check email!"); но сообщение не появляется нигде. Как осуществить вывод сообщения перед редиректом?
@user-fq9hu1sz7l
@user-fq9hu1sz7l 6 жыл бұрын
Какой будет код при работающем JavaMailSender? Объясните, пожалуйста, это поможет понять для чего используются бины на конкретном примере.
@dimasolovei3280
@dimasolovei3280 2 жыл бұрын
топ👍
@Ray101SPAS
@Ray101SPAS 4 жыл бұрын
Работает с Gmail но при переходе по линке для подтверждения Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback.
@nikitakoylubaev438
@nikitakoylubaev438 5 жыл бұрын
Почему автоматом не конфигурируется JavaMailSender вроде понятно. Это связано с тем, что собственный сервисный класс называется MailSender (и как я понимаю spring просто не может создать уже "свой" бин по работе с почтой, т.к. имя уже занято нашим). Если скажем этот(наш собственный) класс переименовать в MailService, то все заработает автоматически и не нужно будет создавать класс MailConfig.
@ms_shifu7047
@ms_shifu7047 5 жыл бұрын
Кстати да, тоже заметил, что такой класс уже есть. Мы требуем ответа!!!
@l524l8
@l524l8 4 жыл бұрын
А в каком из видео была исправлена ошибка из-за которой пользователь мог входить без авторизации по email?
@e-vending7967
@e-vending7967 5 жыл бұрын
Спасибо за уроки! Может кто сталкивался - после добавления зависимости spring-boot-starter-mail вылетает с ошибкой Error creating bean with name 'cacheManager'
@Favarish
@Favarish 3 жыл бұрын
Кажестя это решается в видео чуть позже. Для mail-сендера создается отдельный bean в конфиге.
@user-iq9sf2hd2w
@user-iq9sf2hd2w 4 жыл бұрын
у меня почту, с которой я рассылаю сообщения принимает за спам, не понимаю, это значит что все норм, сообщения генерятся и отправляются или нет? и вообще как это пофиксить на яндексе?)
@oleksiiskachkov2870
@oleksiiskachkov2870 5 жыл бұрын
В процессе наплодил кучу юзеров. Решил добавить логику на удаление юзеров из юзерЛиста. Поймал две проблемы: 1. получаю Whitelabel Error Page при удалении юзера (при этом юзер удаляется) 2. не могу удалить юзеров, у которых есть сообщения что делал: добавил в класс UserController (результат что с моделькой что без неё - одинаковый) @GetMapping("/delete/{username}") public String userDelete(@PathVariable String username, Model model){ User user = userRepo.findByUsername(username); userRepo.delete(user); model.addAttribute("user", user); model.addAttribute("users", userRepo.findAll()); return "redirect:/userList"; } в userList.ftl добавил ссылку на удаление, и теперь лист пользователей выглядит так: ${user.username} ${role}, Edit Delete Полная ошибка №1: Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Thu Jan 10 17:35:57 EET 2019 There was an unexpected error (type=Not Found, status=404). No message available
@oleh8526
@oleh8526 4 жыл бұрын
Кто-то сталкивался? java.lang.Runtime Exception: Mail server connection failed; nested exception is javax.mail.MessagingException: Got bad greeting from SMTP host: smtp.yandex.ru, port: 465, response: [EOF]. Failed messages: javax.mail.MessagingException: Got bad greeting from SMTP host: smtp.yandex.ru, port: 465, response: [EOF]
@stariyvoyaka6308
@stariyvoyaka6308 3 жыл бұрын
Дружище куда ж ты так тараторишь, шикарные уроки - сбавь скорость диктовки уж очень быстро летишь!
@mizantropoff
@mizantropoff 7 ай бұрын
Так это ж монтаж)
@CC-vh4bv
@CC-vh4bv 4 жыл бұрын
а что из теории почитать чтобы самому в этом разобраться? кто может навести на нужные ресурсы, киньте ссылки кто знает
@SasukeUchiha-yz3ge
@SasukeUchiha-yz3ge 4 жыл бұрын
В письме Activation code ссылка не гиперссылается а просто строка. Есть идеи чтоб он в письме href был??? Андрюха спасибо за труды, вы просто тащер
@soul8927
@soul8927 4 жыл бұрын
появились идеи?
@ProBananza
@ProBananza 5 жыл бұрын
Проблемы с ящиком. Может кому поможет. Если создаете новый ящик, нужно заполнить данные и привязать номер, иначе яндекс блокирует ящик. Так же нужно включить imap для почтовых клиентов в настройках и сгенерировать пароль для приложения, для каждого входа в ящик нужен новый пароль
@eld4j
@eld4j 2 жыл бұрын
в 2:38 чем можно заменить ?
@vano-559
@vano-559 6 жыл бұрын
!StringUtils.isEmpty можно заменить на StringUtils.isNotBlank. Пользуйтесь библиотекой от Apache
@letsCodeDru
@letsCodeDru 6 жыл бұрын
Можно. Но мне apache commons не очень нравится. Несколько архаичен и монструозен. Но бесспорно это достойная библиотека :)
@vano-559
@vano-559 6 жыл бұрын
@@letsCodeDru я только о том, что можно сократить на одну операцию это выражение. Ничего принципиального или особо важного в этом нет, а меня сейчас как-раз таким деталям учат - в глаза бросилось.
@LuchkinDS
@LuchkinDS 6 жыл бұрын
привет! валидация на клиенте конечно нужна, но она должна дублировать валидацию на стороне сервера. возможно нужно внести изменение в логику логина пользователя, чтобы до активации пользователь не мог залогиниться? не лучше ли было бы использовать события для отправки email (это мысли в слух, я spring только осваиваю)?
@4val0v
@4val0v 6 жыл бұрын
Полностью поддерживаю тебя, видел где-то урок в котором это реализовали, если хочешь посмотреть могу поискать
@letsCodeDru
@letsCodeDru 6 жыл бұрын
Совершенно верно. Я просто разделяю темы: одно видео - одна тема. Мне каша в ваших головах не нужна, я же вам курсы не продаю ;) Будет видео с валидацией на обоих концах провода
@letsCodeDru
@letsCodeDru 6 жыл бұрын
И на этом канале будет скоро :)
@user-dx9sw2kt5f
@user-dx9sw2kt5f 6 жыл бұрын
поищи )
@YuretsUA
@YuretsUA 5 жыл бұрын
Эту логику можно и самому дописать, для этого и есть поле isActive, и его ставить в true только после подтверждения кода активации, ну или включить фантазию, и активировать пользователей только с панели администратора пользователей
@user-fq9hu1sz7l
@user-fq9hu1sz7l 6 жыл бұрын
Что делает аннотация @Bean перед public JavaMailSender getMailSender в вашем примере?
@sensibleprogrammer1149
@sensibleprogrammer1149 6 жыл бұрын
создает бин(класс) JavaMailSenderImpl, которую Spring использует как реализацию JavaMailSender у себя в контексте
@DeamondGod865
@DeamondGod865 3 жыл бұрын
может кто нибудь скинуть код с работающей валидацией почты на gmail а то вообще не пашет
@user-mm6pl5re8l
@user-mm6pl5re8l 2 жыл бұрын
Что-то не пойму что я упустил, после активации пользователя по ссылке и ввода имени и пароля при логине вылетает 404-я ошибка. Делаю шаг назад в браузере, мне пишет что активейтед код не найден, я ввожу данные еще раз и все прекрасно работает. Даже хз чо я мог упустить((( Мб кто сталкивался? И да, Спасибо за видео. Все просто огонь)))
@artsbrand
@artsbrand 5 жыл бұрын
Здравствуй дружище, по JMS можно тутор запилить? )
@letsCodeDru
@letsCodeDru 5 жыл бұрын
Я не возражаю, пили))) На канале тоже будет. Вот только по срокам не сориентирую
@artsbrand
@artsbrand 5 жыл бұрын
@@letsCodeDru подожду, просто отлично! прямо кладезь знаний нашел )
@user-tj7sr9su8x
@user-tj7sr9su8x Жыл бұрын
Всё сделал как на видео, настроил по инструкции почту яндекса. Итог, письма не приходят и не отправляются, пользователь может зайти и без перехода по ссылке...
@user-tj7sr9su8x
@user-tj7sr9su8x Жыл бұрын
так же
@Ilya_yarets
@Ilya_yarets 4 жыл бұрын
У кого вылетает "Error: authentication failed: Invalid user or password!" и вам ответы в чате или в комментариях не помогло, то проверьте ещё раз хорошенько логин и пароль, а если не помогло, то попробуйте создать новую почту. Мне помогло, хотя я и вводил всё правильно на 100%
@global_silence2623
@global_silence2623 6 жыл бұрын
Чето немного запутался. А че в итоге значит аннотация Autowired? Это че, тупо замена new ClassName(...)? Просто я сейчас создал свой класс, даже не помечал его никакой аннотацией - тупо пустой класс. И его можно автовайрить в другом классе - все нормально, ничего не подчеркивается. Когда изучал спринг кор, там бины описывались в xml файле. Там вроде как было так, что спринг сканил все бины и находил подходящий для поля, помеченного автовайред. Там еще можно было делать скан по имени имени бина, если существует несколько бинов, которые описывают класс. Тут я вообще никаких бинов не создавал, а автовайред спокойно работает. Мб кто объяснит? Запускать не пробовал, но вроде как ничего не подчеркивается. Единственное, что приходит в голову - все бины в спринге по умолчанию Singleton. То есть, если Autowired по дефолту каким-то образом создает экземпляр класса, то он будет синглтоном - ну чтобы на каждую отправку сообщения не создавать новый экземпляр класса.
@letsCodeDru
@letsCodeDru 6 жыл бұрын
Да, замена. Но не для pojo это, а для сервисов. Собсно это и есть те самые DI и IoC. Т.е. управление зависимостями снаружи. Если не знакомо это, то очень советую почитать, ибо нужная вещь
@KyivanEnjoyer
@KyivanEnjoyer 5 жыл бұрын
mailSender.send(mailMessage); Error:(26, 19) java: cannot access javax.mail.internet.MimeMessage class file for javax.mail.internet.MimeMessage not found
@taras7630
@taras7630 4 жыл бұрын
dependency не добавил org.springframework.boot spring-boot-starter-mail
@sergiirushanskiy9895
@sergiirushanskiy9895 4 жыл бұрын
Как решил проблему? Такая же фигня, dependency не помогает
@KyivanEnjoyer
@KyivanEnjoyer 4 жыл бұрын
@@sergiirushanskiy9895 не помню, но скорее всего чето с пропертями не хватает, или в классе с конфигом MailConfig
@hamstervilldr5128
@hamstervilldr5128 5 жыл бұрын
Не заработало пока не отключил антивирус, примите к сведению, выдавало 500 ошибку
@noNameNoFear1234
@noNameNoFear1234 4 жыл бұрын
Тоже самое, AVAST не пропускал.
@borokopshi
@borokopshi 4 жыл бұрын
Кто нибудь текст письма делал на русском? У меня ломанная кодировка
@Igor_Litvinyuk
@Igor_Litvinyuk 6 жыл бұрын
При добавлении нового пользователя вываливается ошибка: There was an unexpected error (type=Internal Server Error, status=500). Mail server connection failed; nested exception is javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 465; По рекомендациям руководства Spring добавил в пропертя приложения две строчки: spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.starttls.enable=true Потом соответственно в MailConfig добавил дополнительные две Value, чтобы засетить их в проперти. Конечно, можно было их просто положить в проперти без Value, но хотелось, чтобы все было одинаково уже. Но не помогло. Если протокол поменять с smtps на smtp то при добавлении идет просто бесконечная загрузка страницы. Help me, please. Думаю многие сталкивались с этой проблемой
@letsCodeDru
@letsCodeDru 6 жыл бұрын
Есть у гугла такая рекомендация по портам:Если вы используете SSL, подключитесь к серверу smtp.gmail.com через порт 465,а если TLS - то через порт 587 не пробовал?
@Igor_Litvinyuk
@Igor_Litvinyuk 6 жыл бұрын
Поменял порт на 587, протокол на smpt и помимо двух строчек: properties.put("mail.smtp.auth", "true"); properties.put("mail.smtp.starttls.enable", "true"); еще добавил: properties.put("mail.smtp.ssl.trust", "smtp.gmail.com"); Благодаря этой проблеме перелопатил и разобрался во всем, что не понимал. Так что даже доволен
@eugeniusznechajew3746
@eugeniusznechajew3746 4 жыл бұрын
Сообщения отправляются только если отключить антивирусник есть идеи как можно избавиться от необходимости его отключать ?
@soul8927
@soul8927 4 жыл бұрын
Нашли решение? Тоже столкнулся
@eugeniusznechajew3746
@eugeniusznechajew3746 4 жыл бұрын
@@soul8927 к сожалению нет, тоже был бы рад найти решение
@nurgazybaetov5193
@nurgazybaetov5193 5 жыл бұрын
This application has no explicit mapping for /error, so you are seeing this as a fallback. Sun Jun 16 00:11:09 ALMT 2019 There was an unexpected error (type=Internal Server Error, status=500). Authentication failed; nested exception is javax.mail.AuthenticationFailedException: 535 5.7.8 Error: authentication failed: Invalid user or password! Помогите
@user-qo5fv4fm1e
@user-qo5fv4fm1e 5 жыл бұрын
Invalid user or password!
@user-bt7oo6ik1i
@user-bt7oo6ik1i 5 жыл бұрын
Несколько дней парился с этой проблемой, пробовал прикрутить gmail. С яндексом оказалось все намного проще, не знаю как у остальных, у меня получилось только с паролем приложения yandex.ru/support/passport/authorization/app-passwords.html
@taras7630
@taras7630 4 жыл бұрын
@@user-bt7oo6ik1i для gmail включить надо было myaccount.google.com/lesssecureapps
@kyrylokadyshev5674
@kyrylokadyshev5674 4 жыл бұрын
@@taras7630 огромное человеское спасибо! Помогло
@mike_mi_mike
@mike_mi_mike 4 жыл бұрын
@@user-bt7oo6ik1i спасибо огромное, тоже только с паролем приложения вышло
@user-fn5el2lt4u
@user-fn5el2lt4u 6 жыл бұрын
Доброго времени суток. При регистрации с подтверждением почты пользователь может пользоваться своим созданным аком и без перехода по ссылке. Я бы не сказал , что это критично , но все же как можно в регистрации добавить дополнительное условие для успешного завершения ( а именно перехода по ссылке , или активация)?
@letsCodeDru
@letsCodeDru 6 жыл бұрын
Простейший способ - в UserService, в методе loadUserByUsername при получении пользователя кидать исключение, если у него не пустое поле activationCode
@phpusr
@phpusr 5 жыл бұрын
Или поле User.activate при регистрации делать false. А после подтвержединя true. Таким образом проверку актвации будет осуществлять Spring Security
@oleksandrvasylchenko316
@oleksandrvasylchenko316 5 жыл бұрын
Если посмотреть интерфейс UserDetails которий ми наследуем то там есть такой метод isEnabled, можно создать такое поле в базе и при регистрации его писать в false а при активации писать в true таким образом проверка на активацию будет проведена Spring
@ms_shifu7047
@ms_shifu7047 5 жыл бұрын
@@phpusr thanks
@user-qy7yv1ut4c
@user-qy7yv1ut4c 4 жыл бұрын
@@oleksandrvasylchenko316 круто.
@sergeygasak484
@sergeygasak484 6 жыл бұрын
Помогите, пожалуйста. Настроил всё как в видео, но выдаёт ошибку: Could not connect to SMTP host: smtp.yandex.ru, port: 465; nested exception is: javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty А если пытаюсь через гугл делать, то: Could not connect to SMTP host: smtp.gmail.com, port: 587; nested exception is: javax.net.ssl.SSLException: Unsupported or unrecognized SSL message
@user-lr7nf1sx7v
@user-lr7nf1sx7v 6 жыл бұрын
У меня такая же проблема была, у гугла есть такая фича - блокирование писем с неизвестных устройств. В настройках нужно разрешить отправку с неизвестных устройств.
@DarthJaxxFather
@DarthJaxxFather 6 жыл бұрын
По какой-то причине у меня нет возможности добавить StringUtils() из пакета util, хм... да и самого пакета нет 3:32. Посмотрел на git-е в pom.xml всё так же... Может такое быть, что maven не дотянул?
@DarthJaxxFather
@DarthJaxxFather 6 жыл бұрын
Решил проблему! Мне помогла 1 команда "mvn dependency:purge-local-repository clean install". Видимо какие-то траблы с maven-ом.
@letsCodeDru
@letsCodeDru 6 жыл бұрын
бывает такая проблема с зависимостями. Поэтому если чего-то нет, а быть должно (и наоборот), первые 2 действия - очистить сборочную директорию, обновить зависимости. Вроде ритуала)
@ceyhunazizzade9637
@ceyhunazizzade9637 6 жыл бұрын
Точно такая же ошибка, но твой метод не помог :(
@ceyhunazizzade9637
@ceyhunazizzade9637 6 жыл бұрын
Переписал ту строчку кода таким образом if(!org.springframework.util.StringUtils.isEmpty(user.getEmail())) Вроде бы работает))
@KyivanEnjoyer
@KyivanEnjoyer 5 жыл бұрын
у меня в базе данных сохраняется activationCode, но на почту не приходит сообщение для активации
@evgheniievghenia8043
@evgheniievghenia8043 4 жыл бұрын
Такая же проблема. Как вылечили? Автор на коменты не отвечает, к сожалению.
@al3kkkkk
@al3kkkkk 3 жыл бұрын
@@evgheniievghenia8043 Может быть плохо настроен пропертис файл, можете попробывать дабавить следующие команды spring.mail.host=smtp.gmail.com spring.mail.username=turchanskiy777@gmail.com spring.mail.password=ohitud53 spring.mail.port=587 spring.mail.protocol=smtp spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.starttls.enable=true mail.debug=true А это в МейлКонфиг properties.put("mail.smtp.ssl.trust", "smtp.gmail.com"); Мне помогло думаю вам тоже поможет
@mika2557
@mika2557 5 жыл бұрын
Удалил случайно бд(да у меня такое бывает) и теперь не могу понять как доступ к админу получить((
@mika2557
@mika2557 5 жыл бұрын
Взял код из видео про панель администратора и роли, удалил 2 аннотации о которых говорится в конце видео, поставил роль админу, вернул обратно свой код.
@mika2557
@mika2557 5 жыл бұрын
А в следующем видео мы удаляем базу и создаем новую, вот тут мне стало грустно.
@Krainiiserver
@Krainiiserver 5 жыл бұрын
вроде все сделал, все работает-запускается, никаких ошибок, но письмо на временный ящик не приходит ))
@Krainiiserver
@Krainiiserver 5 жыл бұрын
может быть из-за этого: Возможно, наша система безопасности сочла ваш аккаунт подозрительным и заблокировала ящик. Чаще всего это происходит из-за того, что к ящику не привязан номер телефона или в Паспорте указаны вымышленные имя и фамилия. Блокировка закончится автоматически через 24 часа. Если вы попытаетесь отправить письмо в течение этого времени, блокировка продлится еще 24 часа. Пропали письма из ящика
@Krainiiserver
@Krainiiserver 5 жыл бұрын
все заработало.
@user-qy7yv1ut4c
@user-qy7yv1ut4c 5 жыл бұрын
@@Krainiiserver что сделал то??
@Krainiiserver
@Krainiiserver 5 жыл бұрын
@@user-qy7yv1ut4c в коде где-то накосячил, какую-то строчку пропустил. Если делать всё четко по видео - работает!
@artempugachev4193
@artempugachev4193 3 жыл бұрын
Настройки, которые сработали у меня mail: host: smtp.yandex.ru username: ***** password: ***** port: 465 protocol: smtp debug: true mailSender.setHost(host); mailSender.setPort(port); mailSender.setUsername(username); mailSender.setPassword(password); Properties properties = mailSender.getJavaMailProperties(); properties.setProperty("mail.transport.protocol", protocol); properties.setProperty("mail.debug", debug); properties.setProperty("mail.transport.protocol", "smtp"); properties.setProperty("mail.smtp.starttls.enable", "true"); properties.put("mail.smtp.auth", "true"); properties.setProperty("mail.smtp.ssl.enable", "true"); Плюс необходимо добавить пароль в разделе "Пароли приложений" тут: passport.yandex.ru/profile И разрешить доступ к почтовому ящику с помощью почтовых клиентов "С сервера imap.yandex.ru по протоколу IMAP" тут: mail.yandex.ru/?dpda=yes&uid=1257957496#setup/client
@zagamusic5089
@zagamusic5089 3 жыл бұрын
Спасибо тебе,я два часа искал как пофиксить эту проблему!
@upmoover
@upmoover 3 жыл бұрын
Спасибо за помощь, все заработало.
@movie_moment
@movie_moment Жыл бұрын
Спасибо огромное)
@esu_streba
@esu_streba 6 жыл бұрын
Tue Aug 14 23:21:55 EEST 2018 There was an unexpected error (type=Internal Server Error, status=500). Failed messages: java.lang.NullPointerException Вот такая ошибка выпадает!
@Mitreskotv
@Mitreskotv 5 жыл бұрын
в какойто ссылке у тебя нет обьекта. Смотри в браузере, а в консоли идеи будет подробное описпние, где ты словил NPE
@user-ou8ty2ne5f
@user-ou8ty2ne5f 5 жыл бұрын
У меня тоже была NPE. Оказалось что я пропустил строку mailMessage.setTo(mailTo); И при инициализации маилСендера происходил крах. а в логах было только NPE!
@sashkoplash8332
@sashkoplash8332 4 жыл бұрын
Такая же ошибка в строке if (!userService.addUser(user)) в RegistrationController Как исправить плиииз?
@Togruls
@Togruls 4 жыл бұрын
Выдает такую ошибку как решить кто в курсе? Field mailSender in com.example.sweater.service.UserService required a bean of type 'com.example.sweater.service.MailSender' that could not be found.
@dmitrysokol6883
@dmitrysokol6883 4 жыл бұрын
нашел решение? тоже самое вылезло
@quadcopterguys5760
@quadcopterguys5760 3 жыл бұрын
@@dmitrysokol6883 а ты нашел?)
@user-rb7dm4jn8u
@user-rb7dm4jn8u 2 жыл бұрын
переименовал класс из MailSender в MailService что бы слетела ошибка create new bin MailSender, по тому что интерфейс MailSender существует в стандартном пакете spring
@user-rb7dm4jn8u
@user-rb7dm4jn8u 2 жыл бұрын
короч MailSendes переименуй просто в MailService
@XIRON86
@XIRON86 2 жыл бұрын
Есть для новичков гайды/туторы? Слишком сложно и ничего не понятно.
@Name-mm2kx
@Name-mm2kx 6 жыл бұрын
Привет, заметил, что при регистрации с полностью пустыми полями, так же выдает, что пользователь существует. Как исправить?
@letsCodeDru
@letsCodeDru 6 жыл бұрын
Добавить проверку)
@Name-mm2kx
@Name-mm2kx 6 жыл бұрын
letsCode Уже добавил)). Спасибо за серию роликов)), самый крутой туториал, добавляет понимание, как и где использовать, очень понравилось
@artemmalitsa5150
@artemmalitsa5150 4 жыл бұрын
Народ, кто-то может словил javax.mail.AuthenticationFailedException: 535 Incorrect authentication data как и я? Есть варианты решения? spring.mail.host=smtp.ukr.net spring.mail.username=**********@ukr.net spring.mail.password=********* spring.mail.port=465 spring.mail.protocol=smtps properties.setProperty("mail.transport.protocol", protocol); properties.setProperty("mail.smtp.auth", "true"); properties.setProperty("mail.smtp.starttls.enable", "true"); properties.setProperty("mail.smtp.ssl.trust", "smtp.ukr.net"); properties.setProperty("mail.debug", debug);
@vvbubnov
@vvbubnov 4 жыл бұрын
Это какая-то бесовщина! Я в общей сложности год-полтора учу java и в первые у меня сложные штуки работают с первого раза! Такого не бывает!
@letsCodeDru
@letsCodeDru 4 жыл бұрын
Значит делаешь не как автор. Сходи в церковь, свечку поставь, икону поцелуй. Про причастие не забудь
@Elvolvers
@Elvolvers 4 жыл бұрын
прошло 2 года, а баг с постгресом, похоже, так и не пофиксили
@soul8927
@soul8927 4 жыл бұрын
Очень на то похоже.
@heorhiutseuski4635
@heorhiutseuski4635 2 жыл бұрын
Удалите старые таблицы, новые создадутся автоматом - и ошибка не будет выскакивать.
@LubluYoba
@LubluYoba 4 жыл бұрын
У меня гугл заработал только при таких настройках: spring.mail.host=smtp.gmail.com spring.mail.username=*********@gmail.com spring.mail.password=********* spring.mail.port=587 spring.mail.protocol=smtps mail.debug=true И в MailConfig дополнительно добавить: properties.put("mail.smtp.ssl.trust", "smtp.gmail.com"); properties.setProperty("mail.smtp.starttls.enable", "true");
@a_annaev
@a_annaev 3 жыл бұрын
В разделе безопасности в настройках аккаунта разрешить доступ приложению
@ivanmoroz2422
@ivanmoroz2422 4 жыл бұрын
Обучаются как раз хорошим практикам. Не очень красиво - такой вариант.
@renniqs1084
@renniqs1084 6 жыл бұрын
Если пользователь не перешел по ссылке он сможет залогиниться или нет?
@letsCodeDru
@letsCodeDru 6 жыл бұрын
Если вопрос про активацию аккаунта - то сможет. Блокировать или нет - рашать уже вам. Я разбирал кейс "как подтвердить", остальное - вам на откуп)
@user-kk1tf3nq8w
@user-kk1tf3nq8w 6 жыл бұрын
На самом деле отличный вопрос от пользователя renniq s, потому как я начал допиливать проверку валидации ActivationCode на этапе логина и столкнулся с трудностями, ибо можно легко запилить ее в UserService сделав поиск юзера по findByActivationCode и проверять его поле кода на null , в случае если поле не пустое - делать тот же throw new UsernameNotFoundException("Activation code not found"); Но тогда мы увидим error "Bad credentials", а это не совсем то что нужно _( Как выводить ему именно кастомное сообщение об ошибке? Как вообще можно вклиниться в процесс авторизации на моменте логина , проверить что-то нужное нам и предпринимать какие-то действия ? Видел для WebSecurityConfig http метод addFilter, но не понимаю принцип его работы и как его прикрутить к этой задаче. Хотелось бы еще понимать как правильно программно вылогинить (выкинуть из сессии) авторизированого юзера. Можете показать как с кодом авторизации разрулить? Спасибо :)
@letsCodeDru
@letsCodeDru 6 жыл бұрын
да, вопрос норм. Позже буду рассматривать такие вещи основательней. Эта пачка видео про другое - как начать делать хоть что-то на Spring Boot, поэтому без углублений в частности
@user-kk1tf3nq8w
@user-kk1tf3nq8w 6 жыл бұрын
Аргумент) От простого к сложному. Спасибо вам огромное за видео - очень хорошая подача материала. Надеюсь на расширение этой видеотеки по Spring. Насчет проверки ActivationCode и отбивания авторизации в случае если он есть - сделал в UserDetails проверку на наличие ActivationCode и если он есть - выкидываем throw new LockedException("User "+ user.getUsername() +" not yet activated. Please check your email and activate it"); Костыльно-рабочее решение) Так в принципе можно любой алерт месседж выкидывать. Но проблема в том что этот месседж остается все время , даже когда активировать пользователя или перезагрузить страницу.
@user-qy7yv1ut4c
@user-qy7yv1ut4c 4 жыл бұрын
@@user-kk1tf3nq8w гуд
@qubinets5014
@qubinets5014 2 жыл бұрын
если у вас дебаге isSSL false и не отправляет почту то добавить надо в пропертись properties.put("mail.smtp.ssl.enable", "true"); и все заведется =)
@artemahramenko2200
@artemahramenko2200 6 жыл бұрын
что это за дистрибутив?
@letsCodeDru
@letsCodeDru 6 жыл бұрын
Kubuntu настроенный быть похожим на i3 :)
@caffeinejavacode1475
@caffeinejavacode1475 4 жыл бұрын
Разбираюсь как сделать все на gmail
@caffeinejavacode1475
@caffeinejavacode1475 4 жыл бұрын
1.MailConfig не нужен, просто переименуйте MailSender на NotificationService (допустим). Но все равно понимать как создаються custom @Bean полезно :) 2. Создайте свой app password для gmail support.google.com/accounts/answer/185833 3.вставте свой пароль сюда spring.mail.password:your_app_password app.properties #JavaMailSender spring.mail.host:smtp.gmail.com spring.mail.port:587 spring.mail.username:your_mail_address spring.mail.password:your_app_password spring.mail.properties.mail.smtp.starttls.enable=true
@timuris5820
@timuris5820 4 жыл бұрын
@@caffeinejavacode1475 Respect! Thank you so much :)
@abakkaba8333
@abakkaba8333 4 жыл бұрын
благодарствую, помогло. единственно - в моем случае почему то не принимало порт 587, прописал 465 и дело пошло
@drankenwizard7602
@drankenwizard7602 4 жыл бұрын
​@@caffeinejavacode1475 уже все перепробовал, может ты сталкивался с этим? Mail server connection failed; nested exception is com.sun.mail.util.MailConnectException: Couldn't connect to host, port: smtp.gmail.com, 465; timeout -1; nested exception is: java.net.ConnectException: P.S. 587 порт тоже самое
@caffeinejavacode1475
@caffeinejavacode1475 4 жыл бұрын
@@drankenwizard7602 не сталкивался 1. пересмотри код еще раз 2. проверь порты 3. почитай про ошибку подробнее 4. правильно ли все сделал для gmail
@user-mk9sz3gs3i
@user-mk9sz3gs3i 5 жыл бұрын
Уже все перолопатил, кто сталкивался? Класс MailSender Error:(25, 19) java: cannot access javax.mail.internet.MimeMessage class file for javax.mail.internet.MimeMessage not found
@MoDKona
@MoDKona 5 жыл бұрын
Та же проблема. Не решил?
@user-mk9sz3gs3i
@user-mk9sz3gs3i 5 жыл бұрын
Если будет решение напиши пожалуйста
@MoDKona
@MoDKona 5 жыл бұрын
пока единственное решение что я нашел - это заменить jdk на 1.8, spring boot на 2.0.0 и добавить зависимость javax.mail версии 1.4.7
@user-mk9sz3gs3i
@user-mk9sz3gs3i 5 жыл бұрын
решение: org.springframework.boot spring-boot-starter-mail
@samnemo215
@samnemo215 2 жыл бұрын
кто настраивает через gmail protoocol smtp - это важно а вот тут показано что нужно сделать в самом аккаунте kzfaq.info/get/bejne/q815iLKTs66-lKM.html
@letenbess1779
@letenbess1779 2 жыл бұрын
Спасибо, помог именно вариант с паролем для приложения
@borismatashin5891
@borismatashin5891 3 жыл бұрын
Цены тебе нету))
@jxrise
@jxrise 3 жыл бұрын
если появляется ошибка could not connect to smtp host smtp.yandex.ru port 465, то советую отключить антивирус, мне помогло kzfaq.info/get/bejne/ncioo9eD07rLdp8.html
@silencecore753
@silencecore753 2 жыл бұрын
Спасибо огромное 👍
@user-jo3nv7uh7g
@user-jo3nv7uh7g 2 жыл бұрын
Дополнение для тех, кто хочет как я выложить этот проект или его модификацию к себе на гитхаб в открытый доступ в портфолио (без претензий на авторство само собой): Оставлять прямой доступ к почте в application.properties плохая практика, думаю не нужно объяснять почему. Я решил зашифровать пароли и логины с помощью jasypt. Подробная инструкция: 1.В pom.xml (если используете Maven) добавляем: в com.github.ulisesbocchio jasypt-spring-boot-starter 3.0.4 в com.github.ulisesbocchio jasypt-maven-plugin 3.0.3 Не забываем менять на актуальную 2. После установки указанного идем в application properties. И меняем значение полей, которые хотим зашифровать из value в DEC(value). Например: было - spring.mail.host=smtp.google.com, стало - spring.mail.host=DEC(smtp.google.com) 3. Идем во владку Maven сбоку (i.imgur.com/wXIdM71.png), ПКМ по jasypt:encrypt -> Modify run configuration. В строке Command line i.imgur.com/u1W7cxu.png добавляем -D"jasypt.encryptor.password"="yourpassword", где yourpassword - ваш пароль для шифрования. Ставить можно любой вплоть до 123. После сохранения конфигурации дважды ЛКМ жмем по jasypt:encrypt. После окончания работы проверяем application.properties, и видим что поля с доступами поменялись на ENC(абракадабра в формате base64). Ничего трогать не нужно 4. Вспоминаем свой пароль из шага 3. Открываем конфигурацию запуска (i.imgur.com/aN1PDbp.png). Если в Modify options не стояла галочка Add VM options - ставим (i.imgur.com/YSQRcKu.png). Добавляем в опции vm следующее из шага 3: -D"jasypt.encryptor.password"="yourpassword". Итого выглядит теперь всё так i.imgur.com/WoqJyn6.png 5. Готово, теперь за безопасность своих данных при публикации репо можно не переживать. Был еще вариант с использованием локальных системных переменных, но как я понял на винде такой вариант хорошим не считается Еще пару советов: 1. Когда подключаете свою почту памятуйте про 2FA, в гугле она включена автоматом, в яндексе вроде как опционально. Используйте пароли приложений (как - гуглите) 2. Присмотритесь к lombok - он сейчас используется везде. Насколько я знаю автор уже показывал как им пользоваться в другом видео, но если вы еще его не смотрели -- посмотрите, или погуглите. Зачем? С помоощью аннотаций количество написанного кода сокращается в несколько раз, а код превращается в синтаксический сахар. Вам не нужно использовать idea для генерации геттеров и сеттеров, конструкторов - всё это делается с помощью аннотаций. Гуглите Всем успехов, автору большущее спасибо
@b.s.3105
@b.s.3105 Жыл бұрын
Огромное спасибо за роаботу но ты пропустил очень важную вещь! указать что в классе где находится метод main() - корень проекта нужна аннотация @EnableEncryptableProperties, без неё не формируется нужный Bean и не билдится до конца криптография, остальное как по инструкций :)
@user-we7oz6ty5f
@user-we7oz6ty5f 2 жыл бұрын
Полдня я мучился из-за почты:) С яндексом ничего, даже с помощью комментариев не помогло:) С гуглом только при сборе нескольких комментариев в совокупности помогло:) В общем вот мой вариант рабочей почты от gmail: - В настройках безопасности аккаунта убираем двойную аунтефикацию и добавляем небезопасные приложения разрешены - В application.properties ввел следующее: spring.mail.host=smtp.gmail.com spring.mail.username=yourMail@gmail.com spring.mail.password=yourPassword spring.mail.port=465 spring.mail.protocol=smtps mail.debug=true - В MailConfog (я е смог его убрать, даже со всеми советами @Autowired у меня не работал): properties.setProperty("mail.transport.protocol", protocol); properties.setProperty("mail.debug", debug); properties.setProperty("mail.transport.protocol", "smtp"); properties.setProperty("mail.smtp.starttls.enable", "true"); properties.put("mail.smtp.auth", "true"); properties.setProperty("mail.smtp.ssl.enable", "true"); properties.put("mail.smtp.ssl.trust", "smtp.gmail.com"); Вот с этим всем у меня всем заработало! Может я конечно не добрался до нужного комментария или мой комментарий лишний, но надеюсь он кому-то поможет:) Автору огромное спасибо!!! Благодаря Вам я научился многим вещам и Ваш проект будет отличным черновиком для работы.
@nikkuzmich5378
@nikkuzmich5378 2 жыл бұрын
Спасибо, помог!
@artem89847
@artem89847 2 жыл бұрын
Помог!!!
@user-pi2pg3nl3n
@user-pi2pg3nl3n Жыл бұрын
Обязательно 'MailSender.java' заменить на 'SmtpMailSender.java'
路飞太过分了,自己游泳。#海贼王#路飞
00:28
路飞与唐舞桐
Рет қаралды 38 МЛН
Mom's Unique Approach to Teaching Kids Hygiene #shorts
00:16
Fabiosa Stories
Рет қаралды 38 МЛН
Spring boot + PostgreSQL + Liquibase + Testcontainers
22:01
Sergey Labuzov
Рет қаралды 9 М.
Налог на незнание JavaScript - [Hamster Kombat]
50:20
How to Send Emails with Spring Boot: A Step-by-Step Guide
27:55
lambdaCode
Рет қаралды 20 М.
Лучший браузер!
0:27
Honey Montana
Рет қаралды 1,1 МЛН
Todos os modelos de smartphone
0:20
Spider Slack
Рет қаралды 65 МЛН
📱магазин техники в 2014 vs 2024
0:41
djetics
Рет қаралды 682 М.