开发四年只会写业务代码,分布式高并发都不会还做程序员?->>>

问题描述:使用javamail发送邮件,邮件发送成功,但是后台总有一个异常:
org.springframework.mail.MailSendException: Failed messages: javax.mail.MessagingException: Exception reading response (java.net.SocketTimeoutException: Read timed out)
at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:448) ~[spring-context-support-4.1.0.RELEASE.jar:4.1.0.RELEASE]
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:346) ~[spring-context-support-4.1.0.RELEASE.jar:4.1.0.RELEASE]
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:341) ~[spring-context-support-4.1.0.RELEASE.jar:4.1.0.RELEASE]
java代码:
public void sendMail(List<String> mailList, String content) {
JavaMailSender sender = (JavaMailSender) SpringBeanFactory.getBean("mailSender");
SimpleMailMessage mail = new SimpleMailMessage();
for (String sRecv : mailList) {
try {
mail.setTo(sRecv);
mail.setFrom(SEND_ADDR);// 发送者
mail.setSubject(SUBJECT);// 主题
mail.setText(content);// 邮件内容
sender.send(mail);
} catch (Exception e) {
}
}
}
通过读mail源码发现
com.sun.mail.smtp.SMTPTransport.java 类下

每次走到 finishData都会出现这个异常,具体在 issueSendCommand

当执行到 line = lineInputStream.readLine();这里时便到catch里了

不知道为啥,请各位帮忙看下