I needed to write a service for sending emails, but no matter how many sources I looked at java mailer documentation, nothing comes out and crashes with an unexpected error: "Mail server connection failed. Failed messages: org.eclipse.angus.mail.util .MailConnectException: Couldn't connect to host, port: smtp.gmail.com, 587; timeout -1;n nested exception is:ntjava.net.ConnectException: Connection timed out: connect".
Please tell me, maybe I overlooked something somewhere.
Here is my service, which is embedded in another through DI using the interface, there can be no errors there:
`@Service
public class EmailService implements IEmailService{
private static final Logger log = LoggerFactory.getLogger(EmailService.class);
private final JavaMailSender _javaMailSender;
public EmailService(JavaMailSender javaMailSender){
_javaMailSender=javaMailSender;
}
@Value("${spring.mail.username}") private String sender;
@Override
public ServiceResponse<String> sendEmail(String recipientEmail, String subject, String message) throws Exception {
var serviceResponse = new ServiceResponse<String>();
try {
MimeMessage messageM = _javaMailSender.createMimeMessage();
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(messageM, true);
mimeMessageHelper.setFrom(sender);
mimeMessageHelper.setTo(recipientEmail);
mimeMessageHelper.setSubject(subject);
mimeMessageHelper.setText(message);
_javaMailSender.send(messageM);
serviceResponse.data=null;
serviceResponse.success=true;
serviceResponse.message=String.format("Security code for %s successfully sent to your email.", subject);
}
catch (Exception ex) {
serviceResponse.data=null;
serviceResponse.success=false;
serviceResponse.message=ex.getMessage();
}
return serviceResponse;
}`
Here is my applicatin.yml
:
`mail:
host: smtp.gmail.com
username: [email protected]
password: **** **** **** ****
port: 587
protocol: smtp
properties:
"mail.transport.protocol": smtp
"mail.smtp.auth": true
"mail.smtp.starttls.enable": true`
pom.xml package:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>
expected the message to be sent by email, but instead the above error occurred