Использование Writer для отправки электронного письма с корейским текстом выводит мусор

1

Мое приложение программно отправляет электронные письма. Это работает, когда тело - текст на английском языке, но когда тело - корейский, это выходит как мусор. Например, отправка "테스트" приводит к "???".

Вот код, который я использую для отправки электронного письма:

AuthenticatingSMTPClient client = new AuthenticatingSMTPClient();
    try {
        client.connect(hostname, port);
        client.ehlo("localhost");
        if (client.execTLS()) {
            client.auth(AuthenticatingSMTPClient.AUTH_METHOD.LOGIN, login, password);

            client.setSender(from);

            client.addRecipient(to);

            Writer writer = client.sendMessageData();

            if (writer != null) {
                SimpleSMTPHeader header = new SimpleSMTPHeader(from, to, subject);
                writer.write(header.toString());
                writer.write("테스트);
                writer.close();
                if (!client.completePendingCommand()) {
                    throw new Exception("Failure to sendLocation the email " + client.getReply() + client.getReplyString());
                }
            } else {
                throw new Exception("Failure to sendLocation the email " + client.getReply() + client.getReplyString());
            }
        } else {
            throw new Exception("STARTTLS was not accepted " + client.getReply() + client.getReplyString());
        }
    } catch (Exception e) {
        throw e;
    } finally {
        if (client != null) {
            client.logout();
            client.disconnect();
        }
    }
Теги:
writer

1 ответ

1
Лучший ответ

Укажите кодировку символов при создании клиента, например

AuthenticatingSMTPClient client =
    new AuthenticatingSMTPClient(SMTPSClient.DEFAULT_PROTOCOL, "UTF-8");
  • 0
    Спасибо, что сработало! Я должен был использовать AuthenticatingSMTPClient("TLS", "UTF-8") Edit: только что видел, как вы обновили свой ответ, чтобы включить протокол по умолчанию.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню