写日志记录发送邮件的记录 
收到邮件之后显示收件人名字是正常的中文
但是日志中写入的是乱码了
我在日志写入前设置了setEncoding("GBK")和setEncoding("UTF-8")都是乱码     

解决方案 »

  1.   


    Logger loger = Logger.getLogger("maillog.Maillog");
    FileHandler fh = new FileHandler("./maillog.log", true);
    loger.addHandler(fh);
    fh.setEncoding("GBK");
    loger.setLevel(Level.ALL);
    SimpleFormatter sf = new SimpleFormatter();
    fh.setFormatter(sf);
                    loger.log(
    Level.INFO,
    "send to "+ AddressList+ "\r\n
                                            发送成功\r\n--------------------------\r\n\r\n");"+ AddressList+ "是收件人地址参数
    上面的黑框中是cmd中打印的"+ AddressList+ "内容    
    收到邮件显示收件人是正常的
      

  2.   

    你不要添加修改编码格式的试试:public static void sendErrorMail(String subject, List<String> body) {
    StringBuilder sb = new StringBuilder();
    for (String b: body) {
    sb.append(b);
    sb.append("\r\n");
    }
    sendErrorMail(subject,sb.toString());
    }

    public static void sendErrorMail(String subject, String body) { if (subject == null || subject.equals("") || body == null || body.equals("")) {
    return;
    } SimpleEmail email = new SimpleEmail();
    try {
    email.setHostName("10.10.10.10");

    email.addTo("[email protected]", "leilei");
    email.setFrom("batch", "Batch");
    email.setSubject(subject);
    email.setMsg(body);
    email.send();
    } catch (Exception e) {
    // TODO
    throw new RuntimeException(e);
    } }