gpt4 book ai didi

Java MimeMessage 电子邮件在正文中打印标题信息

转载 作者:行者123 更新时间:2023-12-02 08:22:34 25 4
gpt4 key购买 nike

我继承的代码库正在打印电子邮件正文中的一些标题信息。这是正在打印的内容:

Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

如果我在创建消息后立即message.writeTo(System.out);,上面的文本将打印出来。

是否有属性文件或其他地方指定了这些内容?

看起来当邮件到达时,发送服务器已经为这三个属性写入了正确/不同的 header 信息。

有什么删除它的想法吗?

此外,这是整个函数:

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();
}
}

最佳答案

这些属性通过 java mail api 公开,它们被设置为 header 属性,例如 MimeMessage

Message msg = new MimeMessage(session);
msg.setHeader("MIME-Version", "1.0" );
msg.setHeader("Content-Type", "text/plain; charset=us-ascii" );

邮件服务器可以根据其本地策略依次更改 header 。邮件服务器之间的通信可以很好地使用例如gzip 压缩,其中需要另一组 header 。

[编辑]如果您观察 source code for MimeMessage您将看到某些 header 设置为默认值,例如 setHeader("MIME-Version", "1.0");

关于Java MimeMessage 电子邮件在正文中打印标题信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5197312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com