0

我已经实现了用于发送电子邮件的 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);

4

0 回答 0