0

我正在使用 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();
        }
    }
}
4

2 回答 2

3

确保在 MIME 消息中将内容设置为“text/html”。

MimeMessage message = new MimeMessage(mailSession);
message.setContent("<h1>Hello world</h1>", "text/html");
于 2012-04-24T12:34:51.427 回答
2
Message.setContent(stringBuilder , "text/html");
于 2012-04-24T12:34:08.993 回答