2016-04-15 66 views
1

我设置的短信附加为信中的文本文件。我不明白为什么会发生。Java邮件。回复信息分离为信息和附件

replied letter example

public void sendEmail(MimeMessage message, String textMessage){ 
     Session session = getSession(); 
     Transport transport = null; 
     BodyPart part = new MimeBodyPart(); 

     MimeMultipart multipart = new MimeMultipart(); 
     try { 
      String recipients = InternetAddress.toString(message.getRecipients(Message.RecipientType.TO));    
      MimeMessage replyMessage = (MimeMessage) message.reply(false); 
      replyMessage.setSubject("RE: " + message.getSubject()); 
      replyMessage.setFrom(new InternetAddress(APPROVER)); 
      replyMessage.setReplyTo(message.getReplyTo()); 

      replyMessage.addRecipients(Message.RecipientType.TO, recipients); 

      part.setContent(message.getContent(), message.getContentType()); 
      multipart.addBodyPart(part); 
      part = new MimeBodyPart(); 
      part.setText(textMessage); 
      multipart.addBodyPart(part); 
      replyMessage.setContent(multipart); 

      transport = session.getTransport("smtp"); 
      transport.connect(SERVER_HOST, APPROVER, APPROVER_PASSWORD); 
      transport.sendMessage(replyMessage, replyMessage.getAllRecipients()); 
     } catch (IOException|MessagingException e) { 
      e.printStackTrace(); 
     } 
    } 
+0

目前尚不清楚你想要做什么。您是否尝试将原始邮件附加到回复邮件中?您创建的第一个MimeBodyPart永远不会添加到MimeMultipart。这[JavaMail FAQ条目](http://www.oracle.com/technetwork/java/javamail/faq/index.html#forward)可能会有所帮助。 –

+0

比尔感谢您的回复。我尝试回复收到的消息。但是我的回复信息附加为原始信息的文件。对不起,复制粘贴错误。在代码中修复。 –

回答

1

那是因为你要附加原始消息第一和原来的消息后回复文本。大多数邮寄者都会将回复文本显示为附件。先把答复文字。另外,原始消息通常不会作为回复的附件添加。原始信息的文本通常包含在答复的文本中。请参阅此JavaMail FAQ条目composing the reply text和此JavaMail FAQ条目finding the main body text in the original message