| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Почта через SmtpClient с русским контетном |
| Автор: Vector255 17.4.2015, 10:19 |
| Доброе время суток всем ! Проблема такова: при отправке почты (внутренний сервер MS Exchange 2010) не корректно отображаются русские буквы в приходящем сообщении. Как научить систему общаться на русском ? Отправка происходит из сервлета, на движке Apache Tomcat 7, код таков : SmtpClient smtp = new SmtpClient("192.168.0.70"); // mail server smtp.from("*******"); smtp.to("********"); PrintStream msg = smtp.startMessage(); msg.println("To: " + fio); msg.println("Subject: ААББВВ"); msg.println("Сообщение на русском языке " ); smtp.closeServer(); |
| Автор: LSD 17.4.2015, 11:48 |
| Для начала, было бы неплохо указать какую библиотеку ты используешь. |
| Автор: Vector255 17.4.2015, 11:55 |
| что имеется в виду - библиотек дополнительных нет, чистый html, JavaScript, jsp - страницы, сервлеты на Java. |
| Автор: sQu1rr 17.4.2015, 12:30 |
| sun.net.smtp.SmtpClient - а вы что думали? |
| Автор: Vector255 17.4.2015, 13:03 |
| Это само собой разумеющаяся вещь. Без импорта этих библиотек вообще ничего не компилируется, не говоря уже про работу. Использую IntelliJ IDEA, там без импорта нужных библиотек код помечается красным. |
| Автор: cube 17.4.2015, 14:34 |
| копайте в сторону encoding, может следует UTF-8 или windows-1251 установить |
| Автор: Vector255 17.4.2015, 16:12 |
| Да, что - то подобное про encoding я предполагаю, заготовил даже static final String ENCODING = "koi8-r"; но пока не нашёл куда бы его вставить, ничего подходящего в свойствах не нашёл пока ... |
| Автор: cube 17.4.2015, 16:46 | ||
ну наверно текст который вы написали в idea в UTF-8 (проект в какой кодировке) сообщения приходят в UTF-8? поэтому краказябли, что будет если вы укажите в письме явно
|
| Автор: Vector255 17.4.2015, 16:54 |
| Результат тот же, дополнительно ещё и "Content-type: ... " вошло в сообщение |
| Автор: LSD 17.4.2015, 18:53 |
Есть еще http://commons.apache.org/proper/commons-net/apidocs/org/apache/commons/net/smtp/SMTPClient.html. По сабжу, выкинь этот sun.net и больше никогда не используй. И возьми стандартный http://www.oracle.com/technetwork/java/javamail/index.html. И там уже есть [url=https://docs.oracle.com/javaee/6/api/javax/mail/internet/MimeBodyPart.html#setText(java.lang.String, java.lang.String)]MimeBodyPart.setText()[/url] принимающий текст и кодировку. |
| Автор: Vector255 18.4.2015, 08:32 |
| Спасибо, попробую прикрутить эту штуку. |
| Автор: Vector255 18.4.2015, 11:35 | ||
На этот раз всё вылетает на
В консоли имею это - 18.04.2015 8:33:07 org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet Faces Servlet threw exception java.lang.NoClassDefFoundError: javax/activation/DataHandler по - разному создавал session, но всегда одно и то же :-( |
| Автор: cube 19.4.2015, 19:06 |
Слушайте, а почему бы вам не попробовать на простом приложении запустить, консольном, простой 1 класс написать, на нем все испытать... Библиотеку в WEB-INF/lib положили? |
| Автор: LSD 20.4.2015, 12:49 |
Этот класс входит в состав JDK начиная с 1.6. Ты на какой версии запускаешь? |
| Автор: Vector255 22.4.2015, 08:19 | ||
Итак, опять на работе
Да, у меня 1.5... Это старый и долгий проект. Буду разбираться. |
| Автор: LSD 22.4.2015, 12:29 |
Подключи к проекту http://www.oracle.com/technetwork/java/javase/index-jsp-136939.html. |
| Автор: Vector255 22.4.2015, 13:38 |
| Перешёл на 1.6. Дело немного сдвинулось, однако теперь в Transport.send(Message); имею "javax.mail.AuthenticationFailedException: No authentication mechanisms supported by both server and client" |
| Автор: Vector255 22.4.2015, 15:03 |
| Заработало. Без авторизации. Письма приходят на русском. Всем спасибо. |