2016-09-15 8 views
0

Когда мои прикрепленные файлы имеют длинные имена файлов, имя файла в сообщении электронной почты отображается как «mime» вместо фактического имени файла. Есть ли ограничение на то, как долго может быть имя файла вложения? Или эта проблема вызвана чем-то другим?Имя файла прикрепленного файла отображается как «mime» по электронной почте

Вот код:

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(); 

ответ

0

Там нет предела, но длинные имена файлов будут кодироваться по-разному, и если у вас есть старая почтовая программа не может понять, что кодирование, заменяя некоторое общее название вместо этого. Вы можете установить для свойства System mail.mime.encodeparameters значение false, чтобы отключить эту кодировку.

 Смежные вопросы

  • Нет связанных вопросов^_^