javamail 发送邮件同时带附件和邮件正文问题.
我用javamail做了一个邮件发送的应用,可是当有附件的时候就没有正文了。
代码:<%
//String host = "smtp.qq.com";
String host = "mail.sinosoft.com.cn";
String[] to = request.getParameter("to").split("&");
String from = request.getParameter("from");
String subject = request.getParameter("subject");
String messageText = request.getParameter("body");
boolean sessionDebug = false;
Properties props = System.getProperties();
Session mailSession = Session.getInstance(props, null);
props.put("mail.smtp.host ", host);
props.put("mail.smtp.auth", "true");
props.put("mail.transport.protocol", "smtp");
Multipart mp = new MimeMultipart();
MimeBodyPart mbp1 = new MimeBodyPart();
MimeBodyPart mbp2 = new MimeBodyPart();
MimeBodyPart mbp3 = new MimeBodyPart();
FileDataSource fds1 = new FileDataSource(request.getParameter("file1"));
FileDataSource fds2 = new FileDataSource(request.getParameter("file2"));
mbp1.setDataHandler(new DataHandler(fds1));
mbp2.setDataHandler(new DataHandler(fds2));
mbp3.setText(messageText);
mp.addBodyPart(mbp1);
mp.addBodyPart(mbp2);
mp.addBodyPart(mbp3);
mbp1.setFileName(fds1.getName());
mbp2.setFileName(fds2.getName());
mailSession.setDebug(sessionDebug);
Message msg = new MimeMessage(mailSession);
msg.setFrom(new InternetAddress(from));
//InternetAddress[] address = {new InternetAddress(to)};
//msg.setRecipients(Message.RecipientType.TO, address);
InternetAddress[] address = new InternetAddress[to.length];
for(int i=0; i<to.length; i++){
System.out.println(to[i]);
address[i] = new InternetAddress(to[i]);
}
msg.addRecipients(Message.RecipientType.TO, address);
msg.setSubject(subject);
msg.setSentDate(new Date());
//这里这两句只有后写的一句生效。。。
msg.setContent(mp);
msg.setText(messageText);
Transport transport = mailSession.getTransport("smtp");
transport.connect(host, "name", "password");
transport.sendMessage(msg,msg.getAllRecipients());
out.println("Mail was sent to " + to);
out.println(" from " + from);
out.println(" using host " + host + ".");
%>