2013-01-27 18 views
6

添付ファイルを送信すると、電子メールに本文メッセージ(message.setText(this.getEmailBody());)が表示されません。 添付ファイルがないと、電子メールに本文メッセージが表示されます。メールはGmailアカウントに送られます。何か手がかりがあるのはなぜですか?添付ファイルの送信時にボディメッセージが表示されない

あなたは以下を使用する必要が
 MimeMessage message = new MimeMessage(session_m);  
     message.setFrom(new InternetAddress(this.getEmailSender())); 
     message.addRecipient(Message.RecipientType.TO, new InternetAddress(this.getEmailRecipient())); 
     message.setSubject(this.getEmailSubject()); 
     message.setText(this.getEmailBody()); //This won't be displayed if set attachments 

     Multipart multipart = new MimeMultipart(); 

     for(String file: getAttachmentNameList()){ 
      MimeBodyPart messageBodyPart = new MimeBodyPart(); 
      messageBodyPart.attachFile(this.attachmentsDir.concat(file.trim())); 
      multipart.addBodyPart(messageBodyPart); 

      message.setContent(multipart); 
     } 


     Transport.send(message); 
     System.out.println("Email has been sent"); 

答えて

9

  // Create the message part 
     BodyPart messageBodyPart = new MimeBodyPart(); 
     // Fill the message 
     messageBodyPart.setText(body); 
     messageBodyPart.setContent(body, "text/html"); 

     Multipart multipart = new MimeMultipart(); 
     multipart.addBodyPart(messageBodyPart); 
     //Add the bodypart for the attachment(s) 
     // Send the complete message parts 
     message.setContent(multipart); //message is of type - MimeMessage 
+0

、これは動作しません。 – nidis

+0

メソッド全体。わたしにはできる。スニペットで何かを見逃していないか確認してください。ここでは、[方法](http://ideone.com/7ByeQs)全体です。 – Srinivas

+2

あなたは正しいです。それも私のために働いた。私は問題がこれらの2つの行にあったと思う:MimeBodyPart messageBodyPart = new MimeBodyPart(); \t \t \t messageBodyPart.attachFile(this.attachmentsDir.concat(file.trim()));だから私はあなたのやり方でやらなければならなかった。あなたの助けをありがとう;) – nidis

1

これを行うには、2つの部分に分離する必要があります。

 Multipart multipart = new MimeMultipart(); 

     // content part 
     BodyPart messageBodyPart = new MimeBodyPart(); 
     messageBodyPart.setText(content); 
     messageBodyPart.setContent(content, "text/html"); 
     multipart.addBodyPart(messageBodyPart); 

     BodyPart attachmentPart = new MimeBodyPart(); 
     DataSource source = new FileDataSource(file); 
     attachmentPart.setDataHandler(new DataHandler(source)); 
     attachmentPart.setFileName(file.getName()); 
     multipart.addBodyPart(attachmentPart); 
関連する問題