我想设置我的mime消息的标题顺序。我已经尝试实现mimemessage和重写的writeTo方法。但是,我无法理解它是如何工作的。我发送了一条示例消息但最终收到了两次标题。任何人都可以帮助我明确这一点。下面是我的Message类。
public class MyMessage extends MimeMessage{
private String subject;
private String encodingtype;
public MyMessage(Session session) {
super(session);
this.session=session;
}
@Override
public void writeTo(OutputStream out) throws java.io.IOException, MessagingException{
try{
String replyto = ("\""+displayname+"\" <"+displayfrom+">");
String fromheader = ("\""+displayname+"\" <"+mailfrom+">");
out.write(("Date: "+new Date()+"\r\n").getBytes("UTF-8"));
out.write(("From: "+fromheader+"\r\n").getBytes("UTF-8"));
out.write(("Reply-To: "+replyto+"\r\n").getBytes("UTF-8"));
out.write(("To: "+getAddress(email)+"\r\n").getBytes("UTF-8"));
out.write(("Content-Type: text/html; charset=\"UTF-8\"\r\n").getBytes("UTF-8"));
out.write(("Content-Transfer-Encoding: "+encodingtype+"\r\n").getBytes("UTF-8"));
out.write("\r\n".getBytes("UTF-8"));
out.write("<html><body><h1>HI</h1></body></html>\r\n".getBytes("UTF-8"));
}catch(Exception e){
System.out.println(e);
}
}
}
提前致谢。
答案 0 :(得分:0)
默认情况下,JavaMail会按照互联网RFC建议的顺序放置众所周知的标题。如果你有一些合理的理由将标题放在不同的顺序中,你可以继承MimeMessage并覆盖createInternetHeaders方法来提供你自己的InternetHeaders类的子类,它按照你想要的顺序放置标题。
或者您可以继承MimeMessage并只是覆盖writeTo方法以按照您想要的顺序获取和输出标题。您可能会发现查看MimeMessage source code。
会很有帮助答案 1 :(得分:0)
最后,我可以设置标题顺序。非常感谢Bill Shannon。谢谢您的帮助。以下是我的留言课。
{{1}}