Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Работа с сетью > Как задать кодировку письма


Автор: vovka 29.3.2007, 18:02
Как задать кодировку письма?

Код

......
Socket s=new Socket("cmail.ma.ru",25);
OutputStream outStream =s.getOutputStream();
out = new PrintWriter(outStream,true);
String hostName =InetAddress.getLocalHost().getHostName();
send("HELO "+hostName);
send("MAIL FROM: <" + "[email protected]" + ">");
send("RCPT TO: <" + to + ">");
send("DATA");
send("FROM: <" + "[email protected]" + ">");
send("TO: <" + to + ">");
send("SUBJECT: " + sub );
send(body);
send(".");
s.close();
.........


В какой кодировке создаётся?
Какую кодировку применить?

Автор: kkorsakoff 29.3.2007, 18:33
Кодировка задается в теле письма, а именно в заголовке, например так:

Content-Type: text/html; charset=koi8-r

Только тогда и писать надо в соответсвующей кодировке.

Автор: vovka 29.3.2007, 19:59
Если я работаю с smtp сервером таким способом, каким образом указать кодировку? Это строка для контента, а сабж? В каждой строке прописывать кодировку?

Subject: =?koi8-u?B?UmU6IO7P19nKIMHMx8/SydTN?=

Какой формат указания кодировки?

Автор: kkorsakoff 30.3.2007, 12:44
В заголовках используется Base64 кодировка.
Мне лично больше всего нравится использовать для целей различных перекодирований пакет commons-codec


Вот он - BCodec
http://jakarta.apache.org/commons/codec/apidocs/org/apache/commons/codec/net/BCodec.html

Описание механизма задания кодировки
http://www.ietf.org/rfc/rfc1522.txt

Автор: vovka 30.3.2007, 18:01
За ссылку спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)