Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / JavaMail. Отправка вложений. Проблемы с кодировкой. / 9 сообщений из 9, страница 1 из 1
13.07.2005, 18:10
    #33164432
GMax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaMail. Отправка вложений. Проблемы с кодировкой.
Проблема состоит в том, что имена всех вложенных файлов отображаются неверно, если имя в кириллице.
Может кто укажет, где надо подправить.
Вот код, который отправляет письмо:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
    // Процедура, отправляющая письмо, с вложениями
     public   void  sendMailWithAttachments (File[] _attFiles)  throws  Exception {
        Properties props = System.getProperties();
        props.put("mail.smtp.host", hostMail);
        props.put("mail.smtp.auth", "true");
        Session session_m = Session.getDefaultInstance(props,  null );

        message =  new  MimeMessage (session_m);
        message.setFrom ( new  InternetAddress(fromEmail,fromFullname));
        message.addRecipient(Message.RecipientType.TO,  new  InternetAddress(emailUser, fullnameUser));
        message.setSubject(subject);

        MimeBodyPart messageBodyPart =  new  MimeBodyPart();
        messageBodyPart.setText(body);

        Multipart multipart =  new  MimeMultipart();
        multipart.addBodyPart(messageBodyPart);

         int  i =  0 ;
         while  (i < _attFiles.length) {
            messageBodyPart =  new  MimeBodyPart();
            DataSource source =  new  FileDataSource(_attFiles[i]);
            messageBodyPart.setDataHandler( new  DataHandler(source));
            messageBodyPart.setFileName(_attFiles[i].getName());
            multipart.addBodyPart(messageBodyPart);
            i++;
        }
        message.setHeader("Content-Type","text/plain;charset=windows-1251");
        message.setContent(multipart);

        SMTPTransport t = (SMTPTransport)session_m.getTransport("smtp");
		t.connect(hostMail, mailUser, mailPassword);
		t.sendMessage(message, message.getAllRecipients());
    }
...
Рейтинг: 0 / 0
13.07.2005, 18:49
    #33164513
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaMail. Отправка вложений. Проблемы с кодировкой.
Код: plaintext
1.
2.
//messageBodyPart.setFileName(_attFiles[i].getName());
messageBodyPart.setFileName(javax.mail.internet.MimeUtility.encodeWord(_attFiles[i].getName()));
...
Рейтинг: 0 / 0
14.07.2005, 10:53
    #33165266
GMax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaMail. Отправка вложений. Проблемы с кодировкой.
Спасибо, Денис.
...
Рейтинг: 0 / 0
14.07.2005, 15:46
    #33166344
GMax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaMail. Отправка вложений. Проблемы с кодировкой.
Еще вопрос про кодировку по тому же куску кода, с заменой строки, как подсказал Денис.
Почему при запуске из IDEA письмо приходит так как нужно, в нормальной кодировке.
Если же запускать из *.bat, то письмо приходит в нечитаемой кодировке, да и ктому же MSOutlook при его приеме виснет.
Причем, если убрать строки, отвечающие за отпраку вложений, т. е. оставить так как показано ниже, то все отлично, и при запуске из IDEA, и при запуске из батника.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
     public   void  sendMail ()  {
        Properties props = System.getProperties();
        props.put("mail.smtp.host", hostMail);
        props.put("mail.smtp.auth", "true");
        Session session_m = Session.getDefaultInstance(props,  null );

         try  {
            message =  new  MimeMessage (session_m);
            message.setFrom ( new  InternetAddress(fromEmail,fromFullname));
            message.addRecipient(Message.RecipientType.TO,  new  InternetAddress(emailUser, fullnameUser));
            message.setSubject(subject);
            message.setText(body);
            message.setHeader("Content-Type","text/plain;charset=windows-1251");

            SMTPTransport t = (SMTPTransport)session_m.getTransport("smtp");
		    t.connect(hostMail, mailUser, mailPassword);
		    t.sendMessage(message, message.getAllRecipients());
        }
         catch  (Exception e) {
        }
    }
...
Рейтинг: 0 / 0
14.07.2005, 16:52
    #33166639
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaMail. Отправка вложений. Проблемы с кодировкой.
GMaxПочему при запуске из IDEA письмо приходит так как нужно, в нормальной кодировке.
Если же запускать из *.bat, то письмо приходит в нечитаемой кодировке, да и ктому же MSOutlook при его приеме виснет.
Попробуй запустить класс SendFile из прилагаемого архива. Для компилирования - buil.bat, запуск - run.bat. Только поправь в них пути к библиотекам и параметры запуска в run.bat:

Код: plaintext
usage: java SendFile <from> <smtp> <file> debug[true|false] <to> ... <to>
...
Рейтинг: 0 / 0
14.07.2005, 17:32
    #33166799
GMax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaMail. Отправка вложений. Проблемы с кодировкой.
Этот пример работает.
Теперь буду копаться, и сравнивать, что надо менять.
Спасибо еще раз.
...
Рейтинг: 0 / 0
14.07.2005, 18:10
    #33166940
GMax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaMail. Отправка вложений. Проблемы с кодировкой.
В общем если указать в параметрах запуска java -Dfile.encoding=windows-1251, то все приходит в норму.
...
Рейтинг: 0 / 0
14.07.2005, 18:36
    #33167001
GMax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaMail. Отправка вложений. Проблемы с кодировкой.
А в итоге сделал так и все заработало.
Код: plaintext
props.put("mail.mime.charset", "windows-1251");
...
Рейтинг: 0 / 0
14.07.2005, 19:05
    #33167055
Dima Yermak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaMail. Отправка вложений. Проблемы с кодировкой.
или
-Dmail.mime.charset="windows-1251"


Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / JavaMail. Отправка вложений. Проблемы с кодировкой. / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]