在RTF消息JavaMail中发送一个表

时间:2015-05-29 21:22:41

标签: java email javamail

我试图用RTF发送带有Table的字符串的电子邮件,但当我检查邮件正文时,表格丢失了格式,所以我想知道我做错了什么,这个是要发送和发送电子邮件的以下代码块

public static void send(String asunto, String texto, String emailDestinatario){
    final String username = "myemail@gmail.com";
    final String password = "mypass";

    Properties props = new Properties();
    props.put("mail.smtp.auth", "true");
    props.put("mail.smtp.starttls.enable", "true");
    props.put("mail.smtp.host", "smtp.gmail.com");
    props.put("mail.smtp.port", "587");

    Session session = Session.getInstance(props,
      new javax.mail.Authenticator() {
        protected PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication(username, password);
        }
      });

    try {

        Message message = new MimeMessage(session);
        message.setFrom(new InternetAddress(username));
        message.setRecipients(Message.RecipientType.TO,InternetAddress.parse( emailDestinatario));
        message.setSubject(asunto);
        message.setText(texto);

        Transport.send(message);

        System.out.println("Done");

    } catch (MessagingException e) {
        throw new RuntimeException(e);
    }
}

我需要发送的其他配置和电子邮件,并告诉我表的格式?

这是通过电子邮件发送的文件example

我得到类似的东西(表格丢失了格式)

TARIFAS EMPLEADOS
TARIFA
IVA
TOTAL
EMPLEADOS HASTA $150.000.000
94,000
15,040
109,040
EMPLEADOS MAYOR DE $150.000.000
160,000
25,600
185,600

1 个答案:

答案 0 :(得分:1)

你有没有试过像:

    MimeMessage message = new MimeMessage(sesion);  
    .
    .
    .
    //Config your message....

    Multipart mp = new MimeMultipart();
    MimeBodyPart htmlPart = new MimeBodyPart();
    htmlPart.setContent("RTF HTML TEXT", "text/html");

    mp.addBodyPart(htmlPart);           
    message.setContent(mp);

    Transport.send(message);