![](/img/trans.png)
[英]How to get email body text and attachments using mimemessage class in java
[英]Java MimeMessage email printing header info in body
我繼承的代碼庫是在電子郵件正文中打印出一些標題信息。 這是正在印刷的內容:
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();
}
}
這些屬性通過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
壓縮來執行郵件間服務器通信,其中將需要另一組報頭。
[編輯]如果您觀察MimeMessage
的源代碼,您將看到一些標題設置為默認值,如setHeader("MIME-Version", "1.0");
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.