Пользователи Gmail могут использовать SMTP-сервер Gmail smtp.gmail.com для отправки электронных писем из своих приложений Spring Boot. Для этого давайте сделаем некоторые настройки в приложении:
- Укажите свойства SMTP-соединения в файле application.properties :
1234567
spring.mail.host=smtp.gmail.comspring.mail.username=<your gmail/google app email>spring.mail.password=*****spring.mail.port=587spring.mail.properties.mail.smtp.starttls.enable=truespring.mail.properties.mail.smtp.auth=truespring.mail.properties.mail.smtp.starttls.required=true - Используйте библиотеку инструментов Spring Boot Email — которая является оболочкой для начальной библиотеки Spring Boot Email. Добавьте следующее в ваш pom.xml :
12345
<dependency><groupId>it.ozimov</groupId><artifactId>spring-boot-email-core</artifactId><version>0.6.3</version></dependency> - Пометьте основной класс вашего приложения (т. Е. Класс, аннотированный @SpringBootApplication ) с помощью @EnableEmailTools :
1234567
@SpringBootApplication@EnableEmailToolspublicclassEmailApplication {publicstaticvoidmain(String[] args){SpringApplication.run(EmailApplication.class, args);}} - Давайте напишем тест, который использует bean- компонент it.ozimov.springboot.mail.service.EmailService для отправки электронного письма:
01020304050607080910111213141516171819202122
@RunWith(SpringRunner.class)@SpringBootTestpublicclassEmailServiceTest {@Autowiredit.ozimov.springboot.mail.service.EmailService emailService;@Value("${spring.mail.username}") String fromEmail;@TestpublicvoidtestSendEmail()throwsUnsupportedEncodingException {User user =newUser();user.setEmail("sanaulla123@gmail.com");user.setDisplayName("Mohamed Sanaulla");finalEmail email = DefaultEmail.builder().from(newInternetAddress(fromEmail,"From Name")).to(Lists.newArrayList(newInternetAddress(user.getEmail(), user.getDisplayName()))).subject("Testing email").body("Testing body ...").encoding("UTF-8").build();emailService.send(email);}}
Если все хорошо, вы должны получить электронное письмо в свой почтовый ящик.
Но не все было хорошо, когда я попробовал приведенный выше код, и проблема, с которой я столкнулся, была следующим исключением:
|
1
2
3
4
5
6
7
8
9
|
Caused by: javax.mail.AuthenticationFailedException: 534-5.7.14<https://accounts.google.com/signin/continue?sarp=1≻c=1&plt=AKgnsbs2534-5.7.14 tEY84q9p029iw1YKFy_d8O1vYNwHLixZUNHZlZbIqZki9a-EBfcUTPIenD2i6pN704O_7S534-5.7.14 DK4FC-8-l1K1gU537F4UxjN4v4_txZ5pqxEA8ATwDhmOBzvxAYApfJTQjHL1yhHouwbhGO534-5.7.14 LhOzSAB6Va6u-enaDfcv73dEgv1TT4b19dBfgzIkOoz_7nJ3i-LwWxZqIRyxOEnu8iNIYQ534-5.7.14 iV27v9s4HFOrpSOJNGufv1Hg0wU5s> Please log in via your web browser and534-5.7.14 then try again.534-5.7.14 Learn more at534 5.7.14 https://support.google.com/mail/answer/78754 q6sm2366693pgp.58 - gsmtp |
Причиной этой ошибки было то, что моя электронная почта Gmail / G Suite (т.е. электронная почта с использованием настраиваемого домена) не была настроена для отправки электронной почты из менее безопасных приложений, таких как наше. Для этого вам необходимо посетить: https://www.google.com/settings/security/lesssecureapps и включить переключатель « Разрешить менее безопасные приложения », который выглядит следующим образом:
Иногда, когда вы посещаете ссылку на менее безопасные приложения, вы видите что-то, как показано ниже:
В таком случае вы можете использовать G Suite, и вам нужно, чтобы ваш администратор включил функцию менее безопасных приложений, и это можно сделать, выполнив следующие действия:
- Перейдите на страницу http://google.com/a/ < домена >
- Перейдите к настройке безопасности из меню, как показано на рисунке ниже:
- Нажмите « Основные настройки » на странице настроек безопасности, как показано ниже:
- На странице «Основные настройки» найдите раздел « Менее безопасные приложения » и нажмите « Перейти к настройкам для менее защищенных приложений », как показано ниже:
- Теперь на странице Менее безопасные приложения у вас есть следующие опции:
Выберите « Разрешить пользователям управлять своим доступом к менее защищенным приложениям » и нажмите кнопку « Сохранить» , доступную внизу страницы. Это позволит отдельным пользователям контролировать доступ к своей электронной почте из менее безопасных приложений.
Теперь перейдите на страницу https://www.google.com/settings/security/lesssecureapps, и теперь вы сможете увидеть переключатель для обновления параметра « Разрешить менее безопасные приложения ».
| Ссылка: | Используя Gmail в качестве SMTP-сервера из Java, приложения Spring Boot от нашего партнера по JCG Мохамеда Санауллы в блоге Experiences Unlimited . |





