带有字节数组的邮件附件

use*_*203 9 java arrays email byte

我有一个名为lSession的javax.mail.Session和一个MimeMessage lMessage:

Session lSession = Session.getDefaultInstance(properties);
MimeMessage lMessage = new MimeMessage(lSession);
Run Code Online (Sandbox Code Playgroud)

我得到了一个包含文件表示的字节数组列表:

List <byte[]> pPiecesJointes
Run Code Online (Sandbox Code Playgroud)

我尝试将这些文件附加到邮件中,但我无法解决它....

if(!pPiecesJointes.isEmpty()){
    lMultipart = new MimeMultipart();
    lMessageBodyPart = new MimeBodyPart();
    // text message
    lMessageBodyPart.setText(pMessage);
    lMultipart.addBodyPart(lMessageBodyPart);
    for(int i = 0; i < pPiecesJointes.size(); i++){
        lMessageBodyPart = new MimeBodyPart();
        /* ?????? How add attachment in lMessageBodyPart with a Byte Array ?
        */ 
        lMultipart.addBodyPart(lMessageBodyPart);
    }
    lMessage.setContent(lMultipart);
}

Transport.send(lMessage);
Run Code Online (Sandbox Code Playgroud)

请问,如果有人知道谁用文件数组附加文件?

kAn*_*NaN 12

试试这段代码:

 MimeBodyPart att = new MimeBodyPart(); 
ByteArrayDataSource bds = new ByteArrayDataSource(bytearray, "AttName"); 
att.setDataHandler(new DataHandler(bds)); 
att.setFileName(bds.getName()); 
Run Code Online (Sandbox Code Playgroud)

  • 这是有效的: DataHandler lDataHandler = new DataHandler(new ByteArrayDataSource(fichierByteVO.getFile(), fichierByteVO.getMIMEType())); lMessageBodyPart.setDataHandler(lDataHandler); (2认同)