2016-09-15 1 views
0

Lorsque mes fichiers joints ont des noms de fichier longs, le nom de fichier dans l'e-mail apparaît en tant que "mime" au lieu du nom de fichier réel. Y a-t-il une limite à la longueur du nom de fichier de la pièce jointe? Ou ce problème est-il causé par autre chose?Le nom du fichier de pièce jointe apparaît en tant que "mime" dans l'e-mail

Voici le code:

java.util.Properties properties=System.getProperties(); 
properties.put("mail.smtp.host",smtpHost); 
Session session=Session.getDefaultInstance(properties, null); 

MimeMessage message = new MimeMessage(session); 
Address fromAddress=new InternetAddress(from); 
message.setFrom(fromAddress); 
Address[] toAddresses=InternetAddress.parse(to); 
message.setRecipients(Message.RecipientType.TO, toAddresses); 
Address[] ccAddresses=InternetAddress.parse(cc); 
message.setRecipients(Message.RecipientType.CC, ccAddresses); 
Address[] bccAddresses=InternetAddress.parse(bcc); 
message.setRecipients(Message.RecipientType.BCC, bccAddresses); 
message.setSubject(subject);      

//Start - Send HTML Message      
MimeBodyPart mbpa2 = new MimeBodyPart(); 
mbpa2.setText(body); 
mbpa2.addHeaderLine("Content-Type: text/html; charset=\"iso-8859-1\""); 
mbpa2.addHeaderLine("Content-Transfer-Encoding: quoted-printable");                
Multipart mp2 = new MimeMultipart("alternative");      
mp2.addBodyPart(mbpa2);      


// attach the files to the message 
if (attachments != null && attachments.length > 0) 
{ 
    for (String filename:attachments) 
    { 
     FileDataSource fds = new FileDataSource(filename); 
     MimeBodyPart mbp3 = new MimeBodyPart(); 
     mbp3.setDataHandler(new DataHandler(fds)); 
     mbp3.setFileName(fds.getName());        
     // attach the file to the message 
     mp2.addBodyPart(mbp3);               
    } 
} 
// End of file attachment 

message.setContent(mp2);      
//End - Send HTML Message 

Transport transport=session.getTransport("smtp"); 
transport.connect(smtpHost, "", ""); 
transport.sendMessage(message, message.getAllRecipients()); 
transport.close(); 

Répondre

0

Il n'y a pas de limite, mais les noms de fichiers longs seront encodées différemment et si vous avez un vieux logiciel de messagerie, il ne peut pas comprendre que le codage, en remplaçant un nom général au lieu. Vous pouvez définir la propriété System mail.mime.encodeparameters sur false pour désactiver cet encodage.