想web上写好mail放到db中,后台一个thread5分钟从db读取未发的mail发送出去
db中2个表,一个表记录mail header(为了别的操作方便,所以把header单独做一个表),一个表放整个javax.mail.MimeMessage对象(表除了id,和MimeMessage对象,其他列都是可有可无的,其中MimeMessage列为sql server 的image)
其中保存到db中代码
ByteArrayOutputStream os = new ByteArrayOutputStream();
mime.writeTo(os);
ps.setBinaryStream(2, new ByteArrayInputStream(os.toByteArray()), os.size());
ps.executeUpdate();
从db中读取出来的代码
InputStream is = rs.getBinaryStream(1);
//我把mime输入为文件看看结果
FileOutputStream fos = new FileOutputStream("d:/a.eml");
org.apache.commons.io.CopyUtils.copy(is,fos);
Session session = Session.getDefaultInstance(properties,
new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(userid,pwd);
}
}); //获得邮件会话对象
MimeMessage mime = new MimeMessage(session, is);
问题:为什么d:/a.eml发信人收信人都是正确的,但是mime中getSender,getSubject,getRecipients都是null阿
上面都没有错误,直到Transport.send(mime);才有Recipients未设置的错误