簡體   English   中英

Java MimeMessage電子郵件打印標題信息在正文中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM