我試圖用spring發送一封簡單的郵件。用Java Mail在Spring發送郵件掛起
這是我在java配置中的郵件發送者bean定義。
@Bean
public JavaMailSender javaMailService() {
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
mailSender.setSession(getMailSession());
return mailSender;
}
public Session getMailSession() {
JndiTemplate template = new JndiTemplate();
Session session = null;
try {
session = (Session) template.lookup("java:jboss/mail/Default");
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return session;
}
我正在運行的是jboss wildfly,並且創建的bean沒有任何問題。
這是我的代碼發送電子郵件。
@Autowired
private JavaMailSender mailSender;
@Override
public void sendMail(String mailTo, String subject, String content) throws MessagingException{
MimeMessage message = mailSender.createMimeMessage();
message.setSubject(subject);
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(mailTo,false));
mailSender.send(message);
}
JavaMailSender被正確注入。當我調試執行時發生到mailsender.send()
方法。它開始掛起。
看來jboss中的所有配置都是正確的。我也嘗試在它自己的bean中指定郵件服務器參數。但它仍然不起作用。
我在這裏做錯了什麼?
您的郵件會話是否在JBoss中正確配置? SMTP服務器是否正常運行,您是否可以從JBoss實際連接到服務器。看起來像郵件會話配置問題給我。 – 2014-09-26 08:48:13
我使用Gmail郵件。我可以telnet並連接到它。這是我用的:telent smtp.gmail.com 465 – 2014-09-26 08:50:12
這是我的jboss配置: <登錄名= 「username」 的密碼= 「密碼」/> SMTP服務器> 郵件會話> \t <出站-socket-binding name =「smtp.gmail.com」> outbound-socket-binding> –
2014-09-26 08:52:54