2013-08-01 57 views
1

在我的程序中我必须使用java发送邮件。程序正确发送邮件,但服务器自动添加一个标志。结果是收到的电子邮件包含正确的正文,但带有html标签的签名。用java发送的邮件包含不正确的html标志

Correct body..... 
</pre> 
<html> 
<i> 
Sent by me 
<i> 
<br> 
<br> 
</html> 

我发邮件与后续代码:

Properties props = new Properties(); 
    props.put("mail." + protocol + ".host", smtpHost); 
    props.put("mail." + protocol + ".port", smtpPort); 
    Session session = Session.getDefaultInstance(props, null); 

    // Construct the message 
    Message msg = new MimeMessage(session); 
    msg.setFrom(new InternetAddress(user)); 
    msg.setRecipients(RecipientType.TO, loadAddress()); 
    msg.setSubject(subject); 
    msg.setText(body); 

    // Send the message 
    props.put("mail." + protocol + ".auth", "false"); 
    Transport t = session.getTransport(protocol); 
    try { 
     t.connect(); 
     t.sendMessage(msg, msg.getAllRecipients()); 
    } finally { 
     t.close(); 
    } 

编辑:我试图插入后续代码:

BodyPart messageBodyPart = new MimeBodyPart(); 
    messageBodyPart.setText(body); 
    Multipart multipart = new MimeMultipart(); 
    multipart.addBodyPart(messageBodyPart); 

    msg.setContent(multipart); 

但结果并没有改变。我创建身体的功能是:

public void setBody(ArrayList<User> users) { 

    Calendar c = Calendar.getInstance(); 
    c.add(Calendar.DATE, -1); 
    SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy"); 
    String formattedDate = df.format(c.getTime()); 
    subject = new String("Day " + formattedDate); 
    body += "Hi " 
     + formattedDate;  
} 

任何想法?

+0

你尝试用[MimeBodyPart.setContent()](http://docs.oracle.com/javaee/7/api/javax/mail/ internet/MimeBodyPart.html#setContent(java.lang.Object,java.lang.String))? – NINCOMPOOP

+0

你可以参考下面的链接 http://stackoverflow.com/questions/9942575/sending-image-to-mail-by-java-program-without-attaching – muthukumar

+0

你可以通过你保存身体的部分吗? – Deckard27

回答

0

最后我解决插入如下代码:

MimeBodyPart mbp1 = new MimeBodyPart(); 
    mbp1.setContent(body, "text/html"); 
    Multipart mp = new MimeMultipart(); 
    mp.addBodyPart(mbp1); 

    msg.setContent(mp, "text/html"); 
0

尝试使用Message类中的.setContent(Object o, String s)方法,将您的主体作为字符串放入Object参数中,并在第二个参数中放入类似“text/html”的内容以定义内容类型。

+0

我在尝试此解决方案,但结果不会改变 – hasmet

相关问题