无法获得适当的Java邮件格式

时间:2012-04-24 12:29:28

标签: java javamail

我正在使用Java发送电子邮件:

StringBuilder stringBuilder=new StringBuilder("<p>Priority:"+escalationDTO.getEscalationPriority()+"</p><br/><p>Status="+escalationDTO.getEscalationStatus()+"</p><br/><p>Type="+escalationDTO.getEscalationType()+"</p><br/><p>Description="+escalationDTO.getEscalationDescription()+"</p><br/><p>StartDate="+new Date(new java.util.Date().getTime())+"</p><br/><p>EndDate="+sqldate1+"</p>"  );

但我在邮箱中输出的内容如下:

<p>Priority:P1</p><br/><p>Status=closed</p><br/><p>Type=C</p><br/><p>Description=werrwe</p><br/><p>StartDate=2012-04-24</p><br/><p>EndDate=2010-08-09</p>

我不希望HTML标记出现在电子邮件中。每个<p>元素都应该导致换行符。

这是我的邮件类:

package helper;

/**
 * Created by IntelliJ IDEA.
 * User: Milind
 * Date: 4/24/12
 * Time: 4:05 PM
 * To change this template use File | Settings | File Templates.
 */

import java.util.Properties;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.Message.RecipientType;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class SendMail {

    private String from;
    private String to;
    private String subject;
    private String text;

    public SendMail(String subject1,String body) {
       from = "Admin@zedo.com";
       to = "abc@zedo.com";
       subject = subject1;
       text = body;
       System.out.println(subject);
    }

    public void send(){

        Properties props = new Properties();
        props.put("mail.smtp.host", "smtp.bb.zedo.com");
        props.put("mail.smtp.port", "25");

        Session mailSession = Session.getDefaultInstance(props);
        Message simpleMessage = new MimeMessage(mailSession);

        InternetAddress fromAddress = null;
        InternetAddress toAddress = null;
        try {
            fromAddress = new InternetAddress(from);
            toAddress = new InternetAddress(to);
        } catch (AddressException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        try {
            simpleMessage.setFrom(fromAddress);
            simpleMessage.setRecipient(RecipientType.TO, toAddress);
            simpleMessage.setSubject(subject);
            simpleMessage.setText(text);
            Transport.send(simpleMessage);

        } catch (MessagingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

2 个答案:

答案 0 :(得分:3)

确保在MIME邮件上将内容设置为“text / html”。

MimeMessage message = new MimeMessage(mailSession);
message.setContent("<h1>Hello world</h1>", "text/html");

答案 1 :(得分:2)

Message.setContent(stringBuilder , "text/html");