我已经实现了用于发送电子邮件的 Javamailsender。但我总是得到这个例外
org.springframework.mail.MailSendException: Mail server connection failed; nested exception is javax.mail.MessagingException: Could not connect to SMTP host: XXXXX, port: 26;
我检查了命令,看看端口是否已连接到我的 VPN
nc -zv XXXXX 26
但是,我仍然收到此错误。我觉得我在代码中遗漏了一些东西,但我也没有看到任何东西
这是我的代码
@Configuration
class MailConfig {
private static final Logger LOG = LogManager.getLogger(MailConfig.class);
@Value("${mail-sent-from}")
private String sentFrom;
@Value("${mail-copy-to}")
private String copyTo;
@Value("${mail-sent-to}")
private String sentTo;
@Bean
public SimpleMailMessage emailTemplate() {
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom(sentFrom);
message.setTo(sentTo);
if (StringUtils.isNotEmpty(copyTo)) {
message.setCc(copyTo);
}
message.setText("run finished. ");
return message;
}
}
@Service
public class MailService {
private static final Logger LOG = LogManager.getLogger(MailService.class);
@Autowired
private JavaMailSender mailSender;
/**
* This method will send compose and send the message
*/
private void sendSimpleMessage(String from, String[] bcc, String[] to, String subject, String messageBody) {
LOG.debug("Sending email ...");
try {
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom(from);
message.setBcc(bcc);
message.setTo(to);
message.setSubject(subject);
message.setText(messageBody);
mailSender.send(message);
} catch (MailException e) {
LOG.error("A problem prevented sending a confirmation {} email to {}", subject, to, e);
}
}
public void sendSimpleMessageUsingTemplate(String subject,
SimpleMailMessage template,
) {
String messageBody = String.format(template.getText());
sendSimpleMessage(template.getFrom(), template.getBcc(), template.getTo(), subject, messageBody);
}
我在属性文件中添加了属性
# mail properties
spring.mail.host = XXXXX
spring.mail.port = 26
spring.mail.username =
spring.mail.password =
后来我在主应用程序中调用了它
@Autowired
private MailService emailService;
@Autowired
private SimpleMailMessage ReportMail;
emailService.sendSimpleMessageUsingTemplate("Download Run Status Report",
downloadsReportMail);