void sendBuffer()

in src/main/java/org/apache/log4j/net/SMTPAppender.java [374:422]


  void sendBuffer() {

    try {
      String s = formatBody();
      boolean allAscii = true;
      for(int i = 0; i < s.length() && allAscii; i++) {
          allAscii = s.charAt(i) <= 0x7F;
      }
      MimeBodyPart part;
      if (allAscii) {
          part = new MimeBodyPart();
          part.setContent(s, layout.getContentType());
      } else {
          try {
            ByteArrayOutputStream os = new ByteArrayOutputStream();
            Writer writer = new OutputStreamWriter(
                    MimeUtility.encode(os, "quoted-printable"), "UTF-8");
            writer.write(s);
            writer.close();
            InternetHeaders headers = new InternetHeaders();
            headers.setHeader("Content-Type", layout.getContentType() + "; charset=UTF-8");
            headers.setHeader("Content-Transfer-Encoding", "quoted-printable");
            part = new MimeBodyPart(headers, os.toByteArray());
          } catch(Exception ex) {
              StringBuffer sbuf = new StringBuffer(s);
              for (int i = 0; i < sbuf.length(); i++) {
                  if (sbuf.charAt(i) >= 0x80) {
                      sbuf.setCharAt(i, '?');
                  }
              }
              part = new MimeBodyPart();
              part.setContent(sbuf.toString(), layout.getContentType());
          }
      }



      Multipart mp = new MimeMultipart();
      mp.addBodyPart(part);
      msg.setContent(mp);

      msg.setSentDate(new Date());
      Transport.send(msg);
    } catch(MessagingException e) {
      LogLog.error("Error occured while sending e-mail notification.", e);
    } catch(RuntimeException e) {
      LogLog.error("Error occured while sending e-mail notification.", e);
    }
  }