2

SMTPサーバーのポート465でJAVAメールを使用してアプリケーションからメールを送信しています。メールを送信する前にメッセージIDを設定する必要があります。私はいくつかの研究開発を行い、以下のコードを見つけました。updateMessageID()のメソッドをオーバーライドしましたMimeMessage

import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.internet.MimeMessage;

public class CustomMimeMessage extends MimeMessage {

public CustomMimeMessage(Session session) {
    super(session);
}

@Override
protected void updateMessageID() throws MessagingException {

    setHeader("Message-ID", "message id");

   }
}

そしてCustomMimeMessage、サービスでのインスタンスを作成し、そのインスタンスを使用してメソッドを呼び出しましupdateMessageID()たが、gmail によって生成された Message-ID をまだ取得しています。

4

4 に答える 4

0

このように MimeMessage を拡張することで、Transport.send() を呼び出す前に message-id を MimeMessage に設定できます。

import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.internet.MimeMessage;

public class MyMimeMessage extends MimeMessage {

    public MailorMimeMessage(Session session) {
        super(session);
    }

    @Override
    protected void updateMessageID() throws MessagingException {
        if (getHeader("Message-Id") == null) {
            super.updateMessageID();
        }
    }
}

カスタム メッセージ ID を設定します。

message.setHeader("Message-Id","<MY-MESSAGE-ID>");
于 2016-02-23T13:46:33.140 に答える