Русские буквы в аттачменте JavaMail
От: Sonya  
Дата: 05.08.04 07:53
Оценка:
Драсти, у меня такая проблемка:
Посылаю письмо через JavaMail, цепляю аттачмент,
но в названии файла теряются русские буквы ,
а внутри файла русские буквы на месте .
Может кто знает как указать кодировку в названии или что-нибудь еще.

MimeMessage msg = new MimeMessage(session);
.............. указываю кому от кого и т д ...........................
Multipart multi = new MimeMultipart();

MimeBodyPart part1 = new MimeBodyPart();
part1.setDataHandler(new DataHandler(new FileDataSource(<<путь к файлу>>)));
part1.setFileName("Файл1.txt");
multi.addBodyPart(part1);
......... добавляю тело сообщения ............
msg.setContent(multi);
.............. отправляю .................

при этом Файл1.txt превращается в $09 1.txt
Re: Русские буквы в аттачменте JavaMail
От: yury.fedorov Италия http://esistema.it/
Дата: 05.08.04 15:47
Оценка: -1
Здравствуйте, Sonya, Вы писали:

S>Драсти, у меня такая проблемка:

S>Посылаю письмо через JavaMail, цепляю аттачмент,
S>но в названии файла теряются русские буквы ,
S>а внутри файла русские буквы на месте .
S>Может кто знает как указать кодировку в названии или что-нибудь еще.

Попробуй:
MimeBodyPart.setHeader( "Content-Transfer-Encoding", "здесь кодировка" );
Удачи!
Re: Русские буквы в аттачменте JavaMail
От: nant Россия  
Дата: 05.08.04 17:40
Оценка: 5 (3)
Здравствуйте, Sonya, Вы писали:


S>  MimeBodyPart part1 = new MimeBodyPart();
S>  part1.setDataHandler(new DataHandler(new FileDataSource(<<путь к файлу>>)));
S>  //part1.setFileName("Файл1.txt");
// выше - неверно. имя файла надо закодировать для проноса в заголовок.
part1.setFileName(MimeUtility.encodeText("Файл1.txt"));
S>  multi.addBodyPart(part1);
S>  msg.setContent(multi);




P.S. Выделяй пожалуйста исходный код тегами, его так гораздо легче читать.
Re[2]: Русские буквы в аттачменте JavaMail
От: nant Россия  
Дата: 05.08.04 17:47
Оценка: +1
YF>Попробуй:
YF>MimeBodyPart.setHeader( "Content-Transfer-Encoding", "здесь кодировка" );
Обманываете, уважаемый, Content-Transfer-Encoding совсем за другое отвечает.
Он определяет, каким именно способом сообщение закодировано из обычных строк в набор байтов, которые можно посылать по SMTP без ущерба для сообщения. Content-Transfer-Encoding бывает 7bit, quoted-printable, base64 (как минимум).

Re[2]: Русские буквы в аттачменте JavaMail
От: Sonya  
Дата: 06.08.04 08:12
Оценка:
Здравствуйте, nant, спасибо вам огромное, все работает
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.