JAVA MAIL API: 无法将 xls 文件附加到 Mail
JAVA MAIL API : Unable to attach xls file to Mail
我下面的 Java class 必须使用 java 邮件将文本文件内容和邮件复制给收件人,连同附加的 xls 文件。
现在我可以阅读和邮寄文本文件内容,但无法附加 xls 文件。
以下是我的片段:
static void sendmail() throws IOException,
MessagingException,AddressException,FileNotFoundException
{
DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy
HH:mm:ss");
Calendar cal = Calendar.getInstance();
String to1=getOrderinfo.to1;
String to2 = getOrderinfo.to2;
String to3 = getOrderinfo.to3;
String to4 = getOrderinfo.to4;
String from =getOrderinfo.from;
String host = getOrderinfo.host;
Properties properties = System.getProperties();
properties.setProperty("mail.smtp.host", host);
Session session = Session.getDefaultInstance(properties);
MimeMessage message = new MimeMessage(session);
Multipart multipart = new MimeMultipart();
String pathLogFile = "E:/car_failed_report/log.txt";
try {
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO, new
InternetAddress(to1));
message.setSubject(" CAR NOT YET INTEGRATED REPORT at
: "+dateFormat.format(cal.getTime()));
StringBuffer sb = new StringBuffer();
FileInputStream fstream = new
FileInputStream(pathLogFile);
BufferedReader br = new BufferedReader(new
InputStreamReader(fstream));
String singleLine;
while ((singleLine = br.readLine()) != null)
{
sb.append(singleLine + "<br>");
// CarParser1.sb1.append(singleLine +"<br>");
}
br.close();
String allLines;
allLines = sb.toString();
String allLines_html=" <html><head><title></title>
</head>"
+ "<body >"+allLines+"</body ></html>";
message.setContent(allLines_html, "text/html;
charset=ISO-8859-1");
MimeBodyPart attachPart = new MimeBodyPart();
File attachement = new File("E:\car_failed_report
\failed.xls");
if (attachement.exists()) {
attachPart.attachFile(attachement);
} else {
System.out.println("ERROR READING THE FILE");
throw new FileNotFoundException();
}
Transport.send(message);
System.out.println("Email Sent successfully....");
System.out.println();
}
catch(FileNotFoundException f1)
{
System.out.println("File not yet created..this is from
mailer class");
return;
}
catch (MessagingException mex)
{
System.out.println("Invalid Email Address.please provide
a valid email id to send with");
mex.printStackTrace();
}
谁能帮我附上xls文件?
提前致谢。
您使用附件创建了正文部分,但没有将其添加到邮件中。替换以 message.setContent:
开头的代码
MimeMultipart mp = new MimeMultipart();
MimeBodyPart body = new MimeBodyPart();
body.setText(allLines_html, "iso-8859-1", "html");
mp.addBodyPart(body);
MimeBodyPart attachPart = new MimeBodyPart();
File attachement = new File("E:\car_failed_report\failed.xls");
if (attachement.exists()) {
attachPart.attachFile(attachement);
mp.addBodyPart(attachPart);
} else {
System.out.println("ERROR READING THE FILE");
throw new FileNotFoundException();
}
message.setContent(mp);
我下面的 Java class 必须使用 java 邮件将文本文件内容和邮件复制给收件人,连同附加的 xls 文件。
现在我可以阅读和邮寄文本文件内容,但无法附加 xls 文件。
以下是我的片段:
static void sendmail() throws IOException,
MessagingException,AddressException,FileNotFoundException
{
DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy
HH:mm:ss");
Calendar cal = Calendar.getInstance();
String to1=getOrderinfo.to1;
String to2 = getOrderinfo.to2;
String to3 = getOrderinfo.to3;
String to4 = getOrderinfo.to4;
String from =getOrderinfo.from;
String host = getOrderinfo.host;
Properties properties = System.getProperties();
properties.setProperty("mail.smtp.host", host);
Session session = Session.getDefaultInstance(properties);
MimeMessage message = new MimeMessage(session);
Multipart multipart = new MimeMultipart();
String pathLogFile = "E:/car_failed_report/log.txt";
try {
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO, new
InternetAddress(to1));
message.setSubject(" CAR NOT YET INTEGRATED REPORT at
: "+dateFormat.format(cal.getTime()));
StringBuffer sb = new StringBuffer();
FileInputStream fstream = new
FileInputStream(pathLogFile);
BufferedReader br = new BufferedReader(new
InputStreamReader(fstream));
String singleLine;
while ((singleLine = br.readLine()) != null)
{
sb.append(singleLine + "<br>");
// CarParser1.sb1.append(singleLine +"<br>");
}
br.close();
String allLines;
allLines = sb.toString();
String allLines_html=" <html><head><title></title>
</head>"
+ "<body >"+allLines+"</body ></html>";
message.setContent(allLines_html, "text/html;
charset=ISO-8859-1");
MimeBodyPart attachPart = new MimeBodyPart();
File attachement = new File("E:\car_failed_report
\failed.xls");
if (attachement.exists()) {
attachPart.attachFile(attachement);
} else {
System.out.println("ERROR READING THE FILE");
throw new FileNotFoundException();
}
Transport.send(message);
System.out.println("Email Sent successfully....");
System.out.println();
}
catch(FileNotFoundException f1)
{
System.out.println("File not yet created..this is from
mailer class");
return;
}
catch (MessagingException mex)
{
System.out.println("Invalid Email Address.please provide
a valid email id to send with");
mex.printStackTrace();
}
谁能帮我附上xls文件?
提前致谢。
您使用附件创建了正文部分,但没有将其添加到邮件中。替换以 message.setContent:
开头的代码 MimeMultipart mp = new MimeMultipart();
MimeBodyPart body = new MimeBodyPart();
body.setText(allLines_html, "iso-8859-1", "html");
mp.addBodyPart(body);
MimeBodyPart attachPart = new MimeBodyPart();
File attachement = new File("E:\car_failed_report\failed.xls");
if (attachement.exists()) {
attachPart.attachFile(attachement);
mp.addBodyPart(attachPart);
} else {
System.out.println("ERROR READING THE FILE");
throw new FileNotFoundException();
}
message.setContent(mp);