Драсти, у меня такая проблемка:
Посылаю письмо через 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
Здравствуйте, Sonya, Вы писали:
S>Драсти, у меня такая проблемка:
S>Посылаю письмо через JavaMail, цепляю аттачмент,
S>но в названии файла теряются русские буквы
,
S>а внутри файла русские буквы на месте
.
S>Может кто знает как указать кодировку в названии или что-нибудь еще.
Попробуй:
MimeBodyPart.setHeader( "Content-Transfer-Encoding", "здесь кодировка" );
Удачи!
Здравствуйте, 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. Выделяй пожалуйста исходный код тегами, его так гораздо легче читать.
YF>Попробуй:
YF>MimeBodyPart.setHeader( "Content-Transfer-Encoding", "здесь кодировка" );
Обманываете, уважаемый, Content-Transfer-Encoding совсем за другое отвечает.
Он определяет, каким именно способом сообщение закодировано из обычных строк в набор байтов, которые можно посылать по SMTP без ущерба для сообщения. Content-Transfer-Encoding бывает 7bit, quoted-printable, base64 (как минимум).