Add ability to use custom MimeMessage implementation (e.g. to override the default Message-ID generation strategy) #77
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem:
By default, JavaMail generates a Message-ID that contains the machine's name. This is done in
MimeMessage.updateMessageID()
. I would like to be able to set my own Message-ID.Normally, you would override this method. According to the javadoc for
MimeMessage.updateMessageID()
:There is no way to do this however through Simple Java Mail, as the construction of the MimeMessage and the saving of it is done in Mailer and cannot be overridden.
One solution Apache Commons Mail provides for this, is it has a factory method for the creation of the MimeMessage which you can override. I really love the fluent API Simple Java Mail provides; the only issue preventing me using it instead of Apache Commons Mail is the ability to set a different Message-ID generation strategy
Solution:
Add a method to
org.simplejavamail.email.Email
:Use this method in MimeMessageHelper:L67:
This way, users of the library can use their own custom implementations of MimeMessage: