Java电子邮件内容为空

我有代码片段,我发送带excel文件附件的电子邮件。 一切正常,我可以看到标题甚至文件附件。 唯一没有出现的是电子邮件内容。 我测试过我的emailContent变量不为空。 我还能做些什么让它出现? 我甚至启用了这行代码messageBodyPart.setText(emailContent); 但同样的。 但如果启用此部分multipart1.addBodyPart(emailContent); 我收到错误

error: no suitable method found for addBodyPart(String) multipart1.addBodyPart(emailContent); try { Message emailMessage = new MimeMessage(mailSession); emailMessage.setFrom(new InternetAddress(origin1)); emailMessage.addRecipient(Message.RecipientType.TO,new InternetAddress(receiptnt1)); emailMessage.addRecipient(Message.RecipientType.TO,new InternetAddress(receiptnt2)); emailMessage.setRecipients(Message.RecipientType.CC,InternetAddress.parse(cc1)); emailMessage.setSubject(emailTitle); emailMessage.setText(emailContent); BodyPart messageBodyPart = new MimeBodyPart(); // Fill the message //messageBodyPart.setText(emailContent);*/ Multipart multipart1 = new MimeMultipart(); // Part two is attachment messageBodyPart = new MimeBodyPart(); DataSource source = new FileDataSource(filename); messageBodyPart.setDataHandler(new DataHandler(source)); messageBodyPart.setFileName(filename); multipart1.addBodyPart(messageBodyPart); // Put parts in message emailMessage.setContent(multipart1); //System.out.println("\n\nSend email :"+eMArray[0]); transport.sendMessage(emailMessage, emailMessage.getAllRecipients()); } catch (Exception e) { System.out.println("Transport Problem"); e.printStackTrace(); } 

你已经初始化了

 BodyPart messageBodyPart = new MimeBodyPart(); 

两次。 在第二次初始化之前,您要添加正文内容。 所以删除该行

 messageBodyPart = new MimeBodyPary(); 

线,它会工作正常。

使用以下代码。

 Message emailMessage = new MimeMessage(mailSession); emailMessage.setFrom(new InternetAddress(origin1)); emailMessage.addRecipient(Message.RecipientType.TO, new InternetAddress(receiptnt1)); emailMessage.addRecipient(Message.RecipientType.TO, new InternetAddress(receiptnt2)); emailMessage.setRecipients(Message.RecipientType.CC, InternetAddress.parse(cc1)); emailMessage.setSubject(emailTitle); // emailMessage.setText(emailContent); Multipart multipart1 = new MimeMultipart(); BodyPart messageBodyPart = new MimeBodyPart(); // Fill the message messageBodyPart.setText(emailContent); // Part two is attachment BodyPart attachment = new MimeBodyPart(); DataSource source = new FileDataSource(filename); attachment.setDataHandler(new DataHandler(source)); attachment.setFileName(filename); multipart1.addBodyPart(attachment); multipart1.addBodyPart(messageBodyPart); // Put parts in message emailMessage.setContent(multipart1); //System.out.println("\n\nSend email :"+eMArray[0]); transport.sendMessage(emailMessage, emailMessage.getAllRecipients());