Задать вопрос

Почему приходят вопросительные знаки?

Здравствуйте, пишу программу которая будет отправлять сообщение на почтовый ящик по SMTP, вот что я написал:
package smtpsender;

import java.io.IOException;
import java.io.Writer;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.security.spec.InvalidKeySpecException;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.commons.net.smtp.AuthenticatingSMTPClient;
import org.apache.commons.net.smtp.SimpleSMTPHeader;



public class SMTPSender {
    

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        
       
        try {
            AuthenticatingSMTPClient smtpAuth = new AuthenticatingSMTPClient();
            
            smtpAuth.connect("host", 587);
            System.out.println(smtpAuth.getReplyString());
            
            smtpAuth.login("domen.ru");
            System.out.println(smtpAuth.getReplyString());
            
            smtpAuth.auth(AuthenticatingSMTPClient.AUTH_METHOD.LOGIN, "web@domen.ru", "pass");
            System.out.println(smtpAuth.getReplyString());
           
            
            
            smtpAuth.setSender("web@domen.ru");
            System.out.println(smtpAuth.getReplyString());
            
            smtpAuth.addRecipient("ivan@domen.ru");
            System.out.println(smtpAuth.getReplyString());
            
            
            
            Writer writer = smtpAuth.sendMessageData();
            System.out.println(smtpAuth.getReplyString());
            
            SimpleSMTPHeader header = new SimpleSMTPHeader("web@domen.ru", "ivan@domen.ru", "Тестовый заголовок письма");
            
            header.addHeaderField("Content-type", "text/plain; charset=utf-8");
           
            writer.write(header.toString());
            writer.write("Привет, как дела?");
            writer.close();
            smtpAuth.completePendingCommand();
            System.out.println(smtpAuth.getReplyString());
            
            
           
            
            
           
            
        } catch (NoSuchAlgorithmException ex) {
            Logger.getLogger(SMTPSender.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(SMTPSender.class.getName()).log(Level.SEVERE, null, ex);
        } catch (InvalidKeyException ex) {
            Logger.getLogger(SMTPSender.class.getName()).log(Level.SEVERE, null, ex);
        } catch (InvalidKeySpecException ex) {
            Logger.getLogger(SMTPSender.class.getName()).log(Level.SEVERE, null, ex);
        }
            
        
        
        
    }
    
}

Программа письмо пишет, оно приходит, только вместо русских символов появляются вопросительные знаки, в чем может быть проблема?
Заранее большое спасибо!
  • Вопрос задан
  • 865 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
Spetros
@Spetros
IT-шник
Очевидно, в кодировке.
Скорее всего ваше:
writer.write("Привет, как дела?");
не в юникоде.
Ответ написан
zolt85
@zolt85
Программист
Конвертните файл класса в UTF-8
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы