Я использую файл .env.properties для конфиденциальных данных, таких как учетные данные базы данных и почты.
Учетные данные базы данных подбираются Spring правильно, а учетные данные почты — нет.Вот пример того, как выглядят мои файлы .env.properties и application.properties.
Имейте в виду, что приложение работает, если я предоставляю данные почты. непосредственно в application.properties.
.env.properties:
DB_HOST=jdbc:mysql://localhost:3306/randomDbName
DB_USER=root
DB_PASSWORD=root
MAIL_HOST=sandbox.smtp.mailtrap.io
MAIL_PORT=25
MAIL_USER=randomUser
MAIL_PASSWORD=randomPassword
MAIL_PROTOCOL=smtp
application.properties:
# Read configs from .env
spring.config.import=file:.env.properties
### Mail Properties ###
spring.mail.host=${MAIL_HOST}
spring.mail.port=${MAIL_PORT}
spring.mail.username=${MAIL_USER}
spring.mail.password=${MAIL_PASSWORD}
spring.mail.protocol=${MAIL_PROTOCOL}
### Database Properties ###
spring.datasource.url=${DB_HOST}
spring.datasource.username=${DB_USER}
spring.datasource.password=${DB_PASSWORD}
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
### Jwt Properties ###
jwt.expiration.time=3600000
Я получаю следующую ошибку: не удалось разрешить заполнитель «MAIL_HOST» в значении «${MAIL_HOST}»
Но он разрешает учетные данные базы данных, я не знаю не понимаю, почему они разные.
Кроме того, я использую JavaMailSender в своем MailServiceImpl вот так:
@Service
public class MailServiceImpl implements MailService {
private final JavaMailSender javaMailSender;
public MailServiceImpl(JavaMailSender javaMailSender) {
this.javaMailSender = javaMailSender;
}
@Override
public void send(Notification notification) {
MimeMessagePreparator mimeMessagePreparator = mimeMessage -> {
MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage);
messageHelper.setFrom("email@domain.com");
messageHelper.setTo(notification.getRecipient());
messageHelper.setSubject(notification.getSubject());
messageHelper.setText(notification.getContent());
};
javaMailSender.send(mimeMessagePreparator);
}
}
Кроме того, у меня есть необходимая зависимость:
org.springframework.boot
spring-boot-starter-mail
Подробнее здесь: https://stackoverflow.com/questions/787 ... rties-file