【发布时间】:2011-07-09 00:18:19
【问题描述】:
我继承的代码库正在打印电子邮件正文中的一些标题信息。这是正在打印的内容:
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();
}
}
【问题讨论】:
-
您是否尝试过创建某种过滤方法,或者使用正则表达式来分块标题或其他内容。也许提供示例输入/输出有人可以帮助你。
-
为什么您要删除这些标题?它们是准确的,只要
body是全 ASCII 并且没有行 > 998 个字符... -
我想阻止它们在电子邮件中打印出来。所有收件人都会在电子邮件正文的顶部看到这三行。
-
标头最终出现在邮件正文中并没有内在的原因。快速提问:如果将
message.setSubject(subject)更改为message.setSubject(subject.trim()),一切正常吗?
标签: java email jakarta-mail email-headers