В моем Java-приложении у меня есть модуль, который позволяет отправлять письма
application.yml:
...
mail:
host: smtp.gmail.com
port: 587
username: xxxxxx@gmail.com #Replace this field with your Gmail username.
password: xxxxxxx #Replace this field with your Gmail password.
protocol: smtp
tls: true
properties.mail.smtp:
auth: true
starttls.enable: true
ssl.trust: smtp.gmail.com
...
MailService.java:
...
@Async
public void sendEmail(String to, String subject, String content, boolean isMultipart, boolean isHtml) {
log.debug("Send email[multipart '{}' and html '{}'] to '{}' with subject '{}' and content={}",
isMultipart, isHtml, to, subject, content);
// Prepare message using a Spring helper
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
try {
MimeMessageHelper message = new MimeMessageHelper(mimeMessage, isMultipart, StandardCharsets.UTF_8.name());
message.setTo(to);
message.setFrom(Properties.getMail().getFrom());
message.setSubject(subject);
message.setText(content, isHtml);
javaMailSender.send(mimeMessage);
log.debug("Sent email to User '{}'", to);
} catch (Exception e) {
if (log.isDebugEnabled()) {
log.warn("Email could not be sent to user '{}'", to, e);
} else {
log.warn("Email could not be sent to user '{}': {}", to, e.getMessage());
}
}
}
...
Когда я использую свое приложение локально (Windows 10), я получаю свои электронные письма.Но когда я развертываю свое приложение на моем сервере Centos 7, я не получаю никакой почты, и у меня нет ошибок в моих журналах.
Поэтому мне интересно, нужно ли устанавливать постфикс или другие на моем сервере Centos 7пересылать почту?
Я открыл порт 587 25 на своем брандмауэре Centos 7