我继承的代码库是在电子邮件正文中打印出一些标题信息。这就是正在印刷的内容:
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
如果我在创建消息后立即message.writeTo(System.out);
,则会打印出上述文本。
是否有属性文件或某处指定此内容的东西?
看起来当邮件到达时,传出服务器已为这三个属性写了正确/不同的标题信息。
有关删除它的任何想法吗?
此外,这是整个功能:
private String sendConfirmationEmail (String to, String from, String subject, String body, boolean CCSender) {
try
{
String smtpHost = Properties.smtp;
String fromAddress = from;
String toAddress = to;
Properties properties = System.getProperties();
properties.put("mail.smtp.host", smtpHost);
Session session = Session.getInstance(properties, null);
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(fromAddress));
message.setRecipient(Message.RecipientType.TO,
new InternetAddress(toAddress));
message.setRecipient(Message.RecipientType.BCC,
new InternetAddress(fromAddress));
if (CCSender) {
message.setRecipient(Message.RecipientType.CC,
new InternetAddress(from));
}
message.setSubject(subject);
message.setText(body);
message.saveChanges();
Transport.send(message);
return "1:success";
}
catch(Exception e)
{
return "0:failure "+e.toString();
}
}
答案 0 :(得分:2)
这些属性通过java mail api公开,它们被设置为例如MimeMessage中的标题属性。
Message msg = new MimeMessage(session);
msg.setHeader("MIME-Version", "1.0" );
msg.setHeader("Content-Type", "text/plain; charset=us-ascii" );
邮件服务器可以根据本地策略更改标题。邮件服务器通信很可能使用例如邮件进行。 gzip
压缩,其中需要另一组标头。
[编辑] 如果您发现source code for MimeMessage
,您会看到某些标头设置为默认值,例如setHeader("MIME-Version", "1.0");
。