From 4f56c29ba4ca07172f8366a424bb8fdff0cecdcc Mon Sep 17 00:00:00 2001 From: Vitaly Krivenko Date: Fri, 22 Nov 2019 16:49:33 +0200 Subject: [PATCH 1/4] Adding fixes to Message-Id header so that domain override is possible. --- pom.xml | 2 +- src/main/java/hudson/cli/MailCommand.java | 5 ++- .../java/hudson/tasks/EnhancedMessage.java | 41 +++++++++++++++++++ src/main/java/hudson/tasks/Mailer.java | 25 ++++++++++- .../mailer/tasks/MimeMessageBuilder.java | 4 +- .../hudson/tasks/Mailer/global.jelly | 3 ++ .../tasks/Mailer/help-messageIdDomain.html | 3 ++ .../tasks/Mailer/help-messageIdDomain_de.html | 3 ++ .../tasks/Mailer/help-messageIdDomain_fr.html | 3 ++ .../tasks/Mailer/help-messageIdDomain_ja.html | 3 ++ .../tasks/Mailer/help-messageIdDomain_nl.html | 3 ++ .../Mailer/help-messageIdDomain_pt_BR.html | 3 ++ .../tasks/Mailer/help-messageIdDomain_ru.html | 3 ++ .../tasks/Mailer/help-messageIdDomain_tr.html | 3 ++ .../Mailer/help-messageIdDomain_zh_TW.html | 3 ++ 15 files changed, 103 insertions(+), 4 deletions(-) create mode 100644 src/main/java/hudson/tasks/EnhancedMessage.java create mode 100644 src/main/resources/hudson/tasks/Mailer/help-messageIdDomain.html create mode 100644 src/main/resources/hudson/tasks/Mailer/help-messageIdDomain_de.html create mode 100644 src/main/resources/hudson/tasks/Mailer/help-messageIdDomain_fr.html create mode 100644 src/main/resources/hudson/tasks/Mailer/help-messageIdDomain_ja.html create mode 100644 src/main/resources/hudson/tasks/Mailer/help-messageIdDomain_nl.html create mode 100644 src/main/resources/hudson/tasks/Mailer/help-messageIdDomain_pt_BR.html create mode 100644 src/main/resources/hudson/tasks/Mailer/help-messageIdDomain_ru.html create mode 100644 src/main/resources/hudson/tasks/Mailer/help-messageIdDomain_tr.html create mode 100644 src/main/resources/hudson/tasks/Mailer/help-messageIdDomain_zh_TW.html diff --git a/pom.xml b/pom.xml index 91a5caf8..3af4dc6a 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ mailer hpi - 1.30-SNAPSHOT + 1.31 Jenkins Mailer Plugin This plugin allows you to configure email notifications for build results https://github.com/jenkinsci/mailer-plugin diff --git a/src/main/java/hudson/cli/MailCommand.java b/src/main/java/hudson/cli/MailCommand.java index b6e69d24..e7cf2937 100644 --- a/src/main/java/hudson/cli/MailCommand.java +++ b/src/main/java/hudson/cli/MailCommand.java @@ -23,6 +23,7 @@ */ package hudson.cli; +import hudson.tasks.EnhancedMessage; import hudson.tasks.Mailer; import hudson.Extension; import jenkins.model.Jenkins; @@ -47,7 +48,9 @@ public String getShortDescription() { protected int run() throws Exception { Jenkins jenkins = Jenkins.getActiveInstance(); jenkins.checkPermission(Jenkins.ADMINISTER); - Transport.send(new MimeMessage(Mailer.descriptor().createSession(),stdin)); + EnhancedMessage message = new EnhancedMessage(Mailer.descriptor().createSession(),stdin); + message.setNewMessageIdDomain(Mailer.descriptor().getMessageIdDomain()); + Transport.send(message); return 0; } } diff --git a/src/main/java/hudson/tasks/EnhancedMessage.java b/src/main/java/hudson/tasks/EnhancedMessage.java new file mode 100644 index 00000000..91964fd6 --- /dev/null +++ b/src/main/java/hudson/tasks/EnhancedMessage.java @@ -0,0 +1,41 @@ +package hudson.tasks; + +import javax.mail.MessagingException; +import javax.mail.Session; +import javax.mail.internet.MimeMessage; +import java.io.InputStream; + +public class EnhancedMessage extends MimeMessage +{ + private String newMessageIdDomain; + + public EnhancedMessage(Session session) { + super(session); + } + + public EnhancedMessage(Session session, InputStream is) throws MessagingException { + super(session, is); + } + + public EnhancedMessage(MimeMessage source) throws MessagingException { + super(source); + } + + public void setNewMessageIdDomain(String newDomain) + { + this.newMessageIdDomain = newDomain; + } + + protected void updateMessageID() throws MessagingException { + super.updateMessageID(); + if (this.newMessageIdDomain != null && this.newMessageIdDomain.length() > 0 && this.newMessageIdDomain.startsWith("@")) { + String messageId = super.getMessageID(); + int index = messageId.lastIndexOf('@'); + if (index >= 0) { + String firstPart = messageId.substring(0, index); + String newMessageId = firstPart + this.newMessageIdDomain + '>'; + setHeader("Message-ID", newMessageId); + } + } + } +} diff --git a/src/main/java/hudson/tasks/Mailer.java b/src/main/java/hudson/tasks/Mailer.java index ebda8c4e..1440abc2 100644 --- a/src/main/java/hudson/tasks/Mailer.java +++ b/src/main/java/hudson/tasks/Mailer.java @@ -308,6 +308,11 @@ public static final class DescriptorImpl extends BuildStepDescriptor */ private String charset; + /** + * The new domain for Message-ID header. + */ + private String messageIdDomain; + /** * Used to keep track of number test e-mails. */ @@ -556,6 +561,16 @@ public void setCharset(String charset) { save(); } + @DataBoundSetter + public void setMessageIdDomain(String messageIdDomain) { + this.messageIdDomain = messageIdDomain; + save(); + } + + public String getMessageIdDomain() { + return this.messageIdDomain; + } + @DataBoundSetter public void setAuthentication(@CheckForNull SMTPAuthentication authentication) { this.authentication = authentication; @@ -626,6 +641,13 @@ public FormValidation doCheckDefaultSuffix(@QueryParameter String value) { return FormValidation.error(Messages.Mailer_Suffix_Error()); } + public FormValidation doCheckMessageIdDomain(@QueryParameter String value) { + if (value.matches("^@[A-Za-z0-9.\\-]+") || fixEmptyAndTrim(value)==null) + return FormValidation.ok(); + else + return FormValidation.error(Messages.Mailer_Suffix_Error()); + } + /** * Send an email to the admin address * @throws IOException in case the active jenkins instance cannot be retrieved @@ -660,7 +682,7 @@ public FormValidation doSendTestMail( password = null; } - MimeMessage msg = new MimeMessage(createSession(smtpHost, smtpPort, useSsl, username, password)); + EnhancedMessage msg = new EnhancedMessage(createSession(smtpHost, smtpPort, useSsl, username, password)); msg.setSubject(Messages.Mailer_TestMail_Subject(testEmailCount.incrementAndGet()), charset); msg.setText(Messages.Mailer_TestMail_Content(testEmailCount.get(), jenkins.getDisplayName()), charset); msg.setFrom(stringToAddress(adminAddress, charset)); @@ -669,6 +691,7 @@ public FormValidation doSendTestMail( } msg.setSentDate(new Date()); msg.setRecipient(Message.RecipientType.TO, stringToAddress(sendTestMailTo, charset)); + msg.setNewMessageIdDomain(this.messageIdDomain); Transport.send(msg); return FormValidation.ok(Messages.Mailer_EmailSentSuccessfully()); diff --git a/src/main/java/jenkins/plugins/mailer/tasks/MimeMessageBuilder.java b/src/main/java/jenkins/plugins/mailer/tasks/MimeMessageBuilder.java index bf64639e..c7bd9b42 100644 --- a/src/main/java/jenkins/plugins/mailer/tasks/MimeMessageBuilder.java +++ b/src/main/java/jenkins/plugins/mailer/tasks/MimeMessageBuilder.java @@ -27,6 +27,7 @@ import com.google.common.collect.Lists; import hudson.model.TaskListener; import hudson.remoting.Base64; +import hudson.tasks.EnhancedMessage; import hudson.tasks.Mailer; import jenkins.model.Jenkins; import jenkins.model.JenkinsLocationConfiguration; @@ -195,7 +196,8 @@ public MimeMessageBuilder addRecipients(@Nonnull String recipients, @Nonnull Mes * @throws UnsupportedEncodingException in case of encoding problems */ public MimeMessage buildMimeMessage() throws MessagingException, UnsupportedEncodingException { - MimeMessage msg = new MimeMessage(Mailer.descriptor().createSession()); + EnhancedMessage msg = new EnhancedMessage(Mailer.descriptor().createSession()); + msg.setNewMessageIdDomain(Mailer.descriptor().getMessageIdDomain()); setJenkinsInstanceIdent(msg); diff --git a/src/main/resources/hudson/tasks/Mailer/global.jelly b/src/main/resources/hudson/tasks/Mailer/global.jelly index 8316c673..d95674e3 100644 --- a/src/main/resources/hudson/tasks/Mailer/global.jelly +++ b/src/main/resources/hudson/tasks/Mailer/global.jelly @@ -47,6 +47,9 @@ THE SOFTWARE. + + + diff --git a/src/main/resources/hudson/tasks/Mailer/help-messageIdDomain.html b/src/main/resources/hudson/tasks/Mailer/help-messageIdDomain.html new file mode 100644 index 00000000..74016979 --- /dev/null +++ b/src/main/resources/hudson/tasks/Mailer/help-messageIdDomain.html @@ -0,0 +1,3 @@ +
+ Message-ID header new domain name. Some e-mail servers put e-mail to junk if Message-ID header domain name does not correspond to server's domain. Specify @mydomain.com to override Message-ID domain name or empty text to leave it default. +
\ No newline at end of file diff --git a/src/main/resources/hudson/tasks/Mailer/help-messageIdDomain_de.html b/src/main/resources/hudson/tasks/Mailer/help-messageIdDomain_de.html new file mode 100644 index 00000000..a9e7e405 --- /dev/null +++ b/src/main/resources/hudson/tasks/Mailer/help-messageIdDomain_de.html @@ -0,0 +1,3 @@ +
+ Message-ID header Neuer Domänenname. Einige E-Mail-Server versetzen E-Mails in Junk-Mails, wenn der Domänenname des Message-ID header nicht der Domäne des Servers entspricht. Geben Sie @mydomain.com an, um den Domänennamen der Message-ID oder den leeren Text zu überschreiben und die Standardeinstellung beizubehalten. +
\ No newline at end of file diff --git a/src/main/resources/hudson/tasks/Mailer/help-messageIdDomain_fr.html b/src/main/resources/hudson/tasks/Mailer/help-messageIdDomain_fr.html new file mode 100644 index 00000000..e7d6a0a4 --- /dev/null +++ b/src/main/resources/hudson/tasks/Mailer/help-messageIdDomain_fr.html @@ -0,0 +1,3 @@ +
+ Nouveau nom de domaine en-tête de l'ID de message. Certains serveurs de messagerie rejettent le courrier indésirable si le nom de domaine de l'en-tête Message-ID ne correspond pas au domaine du serveur. Spécifiez @mondomaine.com pour remplacer le nom de domaine Message-ID ou le texte vide pour le laisser par défaut. +
\ No newline at end of file diff --git a/src/main/resources/hudson/tasks/Mailer/help-messageIdDomain_ja.html b/src/main/resources/hudson/tasks/Mailer/help-messageIdDomain_ja.html new file mode 100644 index 00000000..f335d2a5 --- /dev/null +++ b/src/main/resources/hudson/tasks/Mailer/help-messageIdDomain_ja.html @@ -0,0 +1,3 @@ +
+ メッセージIDヘッダーの新しいドメイン名。 一部の電子メールサーバーは、メッセージIDヘッダーのドメイン名がサーバーのドメインに対応していない場合、迷惑メールを送信します。 @mydomain.com を指定して、Message-IDドメイン名または空のテキストをオーバーライドしてデフォルトのままにします。 +
\ No newline at end of file diff --git a/src/main/resources/hudson/tasks/Mailer/help-messageIdDomain_nl.html b/src/main/resources/hudson/tasks/Mailer/help-messageIdDomain_nl.html new file mode 100644 index 00000000..30db0a33 --- /dev/null +++ b/src/main/resources/hudson/tasks/Mailer/help-messageIdDomain_nl.html @@ -0,0 +1,3 @@ +
+ Meddelelses-ID-overskrift nyt domænenavn. Nogle e-mail-servere sætter e-mail til skrammel, hvis meddelelses-ID-domænenavn ikke svarer til serverens domæne. Specificer @mydomain.com for at tilsidesætte Message-ID-domænenavn eller tom tekst for at lade det være standard. +
\ No newline at end of file diff --git a/src/main/resources/hudson/tasks/Mailer/help-messageIdDomain_pt_BR.html b/src/main/resources/hudson/tasks/Mailer/help-messageIdDomain_pt_BR.html new file mode 100644 index 00000000..0d5a0126 --- /dev/null +++ b/src/main/resources/hudson/tasks/Mailer/help-messageIdDomain_pt_BR.html @@ -0,0 +1,3 @@ +
+ Novo nome de domínio do cabeçalho de ID da mensagem. Alguns servidores de email colocam o lixo eletrônico como lixo eletrônico se o nome do domínio do cabeçalho do ID da mensagem não corresponder ao domínio do servidor. Especifique @mydomain.com para substituir o nome de domínio do ID da mensagem ou o texto vazio para deixá-lo como padrão. +
\ No newline at end of file diff --git a/src/main/resources/hudson/tasks/Mailer/help-messageIdDomain_ru.html b/src/main/resources/hudson/tasks/Mailer/help-messageIdDomain_ru.html new file mode 100644 index 00000000..52643f54 --- /dev/null +++ b/src/main/resources/hudson/tasks/Mailer/help-messageIdDomain_ru.html @@ -0,0 +1,3 @@ +
+ Новое доменное имя для заголовка Message-ID. Некоторые почтовые серверы помещают электронную почту в нежелательную, если имя домена для заголовка Message-ID не соответствует домену сервера. Укажите @mydomain.com, чтобы переопределить доменное имя для заголовка Message-ID или пустой текст, чтобы оставить его по умолчанию. +
\ No newline at end of file diff --git a/src/main/resources/hudson/tasks/Mailer/help-messageIdDomain_tr.html b/src/main/resources/hudson/tasks/Mailer/help-messageIdDomain_tr.html new file mode 100644 index 00000000..e912a882 --- /dev/null +++ b/src/main/resources/hudson/tasks/Mailer/help-messageIdDomain_tr.html @@ -0,0 +1,3 @@ +
+ İleti kimliği başlığı yeni etki alanı adı. Bazı e-posta sunucuları, Message-ID başlık etki alanı adı sunucunun etki alanına uymuyorsa e-postaları önemsiz duruma getirir. Message-ID etki alanı adını geçersiz kılmak için @mydomain.com adresini veya varsayılanı bırakmak için boş metni belirtin. +
\ No newline at end of file diff --git a/src/main/resources/hudson/tasks/Mailer/help-messageIdDomain_zh_TW.html b/src/main/resources/hudson/tasks/Mailer/help-messageIdDomain_zh_TW.html new file mode 100644 index 00000000..d3fd4fdf --- /dev/null +++ b/src/main/resources/hudson/tasks/Mailer/help-messageIdDomain_zh_TW.html @@ -0,0 +1,3 @@ +
+ Message-ID标头的新域名。 如果Message-ID标头域名与服务器的域不对应,则某些电子邮件服务器会将电子邮件放入垃圾邮件。 指定@ mydomain.com以覆盖Message-ID域名或空文本以将其保留为默认值。 +
\ No newline at end of file From ccacff138bb0af902622cddeb7705de89f217567 Mon Sep 17 00:00:00 2001 From: Vitaly Krivenko Date: Sat, 18 Jan 2020 16:30:57 +0200 Subject: [PATCH 2/4] Per review comments done the following: - Reverted pom.xml changes. - Moved EnhancedMessage into jenkins.plugins.mailer.tasks package. - Added @Restricted attribute to the class level. - Added code comments for EnhancedMessage class. --- pom.xml | 2 +- src/main/java/hudson/cli/MailCommand.java | 3 +- .../java/hudson/tasks/EnhancedMessage.java | 41 ---------- src/main/java/hudson/tasks/Mailer.java | 3 +- .../plugins/mailer/tasks/EnhancedMessage.java | 76 +++++++++++++++++++ .../mailer/tasks/MimeMessageBuilder.java | 1 - 6 files changed, 79 insertions(+), 47 deletions(-) delete mode 100644 src/main/java/hudson/tasks/EnhancedMessage.java create mode 100644 src/main/java/jenkins/plugins/mailer/tasks/EnhancedMessage.java diff --git a/pom.xml b/pom.xml index 3af4dc6a..91a5caf8 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ mailer hpi - 1.31 + 1.30-SNAPSHOT Jenkins Mailer Plugin This plugin allows you to configure email notifications for build results https://github.com/jenkinsci/mailer-plugin diff --git a/src/main/java/hudson/cli/MailCommand.java b/src/main/java/hudson/cli/MailCommand.java index e7cf2937..64216f09 100644 --- a/src/main/java/hudson/cli/MailCommand.java +++ b/src/main/java/hudson/cli/MailCommand.java @@ -23,12 +23,11 @@ */ package hudson.cli; -import hudson.tasks.EnhancedMessage; +import jenkins.plugins.mailer.tasks.EnhancedMessage; import hudson.tasks.Mailer; import hudson.Extension; import jenkins.model.Jenkins; -import javax.mail.internet.MimeMessage; import javax.mail.Transport; /** diff --git a/src/main/java/hudson/tasks/EnhancedMessage.java b/src/main/java/hudson/tasks/EnhancedMessage.java deleted file mode 100644 index 91964fd6..00000000 --- a/src/main/java/hudson/tasks/EnhancedMessage.java +++ /dev/null @@ -1,41 +0,0 @@ -package hudson.tasks; - -import javax.mail.MessagingException; -import javax.mail.Session; -import javax.mail.internet.MimeMessage; -import java.io.InputStream; - -public class EnhancedMessage extends MimeMessage -{ - private String newMessageIdDomain; - - public EnhancedMessage(Session session) { - super(session); - } - - public EnhancedMessage(Session session, InputStream is) throws MessagingException { - super(session, is); - } - - public EnhancedMessage(MimeMessage source) throws MessagingException { - super(source); - } - - public void setNewMessageIdDomain(String newDomain) - { - this.newMessageIdDomain = newDomain; - } - - protected void updateMessageID() throws MessagingException { - super.updateMessageID(); - if (this.newMessageIdDomain != null && this.newMessageIdDomain.length() > 0 && this.newMessageIdDomain.startsWith("@")) { - String messageId = super.getMessageID(); - int index = messageId.lastIndexOf('@'); - if (index >= 0) { - String firstPart = messageId.substring(0, index); - String newMessageId = firstPart + this.newMessageIdDomain + '>'; - setHeader("Message-ID", newMessageId); - } - } - } -} diff --git a/src/main/java/hudson/tasks/Mailer.java b/src/main/java/hudson/tasks/Mailer.java index 1440abc2..adb4a508 100644 --- a/src/main/java/hudson/tasks/Mailer.java +++ b/src/main/java/hudson/tasks/Mailer.java @@ -36,6 +36,7 @@ import hudson.RestrictedSince; import hudson.Util; import hudson.model.*; +import jenkins.plugins.mailer.tasks.EnhancedMessage; import jenkins.plugins.mailer.tasks.i18n.Messages; import hudson.util.FormValidation; import hudson.util.Secret; @@ -68,8 +69,6 @@ import javax.mail.Transport; import javax.mail.internet.AddressException; import javax.mail.internet.InternetAddress; -import javax.mail.internet.MimeMessage; -import javax.servlet.ServletException; import org.apache.tools.ant.types.selectors.SelectorUtils; import org.kohsuke.accmod.Restricted; diff --git a/src/main/java/jenkins/plugins/mailer/tasks/EnhancedMessage.java b/src/main/java/jenkins/plugins/mailer/tasks/EnhancedMessage.java new file mode 100644 index 00000000..415d7be4 --- /dev/null +++ b/src/main/java/jenkins/plugins/mailer/tasks/EnhancedMessage.java @@ -0,0 +1,76 @@ +package jenkins.plugins.mailer.tasks; + +import javax.mail.MessagingException; +import javax.mail.Session; +import javax.mail.internet.MimeMessage; +import java.io.InputStream; +import org.kohsuke.accmod.Restricted; +import org.kohsuke.accmod.restrictions.NoExternalUse; + +/** + * A special class for overriding Message-ID header. + * Some e-mail servers put the mail into spam if Message-ID header domain + * does not correspond to e-mail server domain. This class helps to overcome + * the issue. + * + * @author Vitaly Krivenko + */ +@Restricted(NoExternalUse.class) +public class EnhancedMessage extends MimeMessage +{ + /** + * The new Message-ID domain that will override the default one. + */ + private String newMessageIdDomain; + + /** + * Initializes EnhancedMessage class instance. + * @param session the session context + */ + public EnhancedMessage(Session session) { + super(session); + } + + /** + * Initializes EnhancedMessage class instance. + * @param session the session context + * @param is the message input stream + */ + public EnhancedMessage(Session session, InputStream is) throws MessagingException { + super(session, is); + } + + /** + * Initializes EnhancedMessage class instance. + * @param source the message to copy + */ + public EnhancedMessage(EnhancedMessage source) throws MessagingException { + super(source); + } + + /** + * Sets the new Message-ID header domain which will override the default one. + * @param newDomain The new Message-ID header domain + */ + public void setNewMessageIdDomain(String newDomain) + { + this.newMessageIdDomain = newDomain; + } + + /** + * Overrides default javamail behaviour by replacing the default Message-ID domain with the new one. + */ + @Override + protected void updateMessageID() throws MessagingException { + super.updateMessageID(); + if (this.newMessageIdDomain != null && this.newMessageIdDomain.length() > 0 && this.newMessageIdDomain.startsWith("@")) { + String messageId = super.getMessageID(); + int index = messageId.lastIndexOf('@'); + if (index >= 0) { + String firstPart = messageId.substring(0, index); + String newMessageId = firstPart + this.newMessageIdDomain + '>'; + setHeader("Message-ID", newMessageId); + } + } + } +} diff --git a/src/main/java/jenkins/plugins/mailer/tasks/MimeMessageBuilder.java b/src/main/java/jenkins/plugins/mailer/tasks/MimeMessageBuilder.java index c7bd9b42..fc76f529 100644 --- a/src/main/java/jenkins/plugins/mailer/tasks/MimeMessageBuilder.java +++ b/src/main/java/jenkins/plugins/mailer/tasks/MimeMessageBuilder.java @@ -27,7 +27,6 @@ import com.google.common.collect.Lists; import hudson.model.TaskListener; import hudson.remoting.Base64; -import hudson.tasks.EnhancedMessage; import hudson.tasks.Mailer; import jenkins.model.Jenkins; import jenkins.model.JenkinsLocationConfiguration; From 77cacc3a142005ba86eb74b032ce81cf6a2880aa Mon Sep 17 00:00:00 2001 From: Vitaly Krivenko Date: Sat, 18 Jan 2020 20:16:31 +0200 Subject: [PATCH 3/4] small change to force retest of the branch. --- .../java/jenkins/plugins/mailer/tasks/EnhancedMessage.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/jenkins/plugins/mailer/tasks/EnhancedMessage.java b/src/main/java/jenkins/plugins/mailer/tasks/EnhancedMessage.java index 415d7be4..ae2bffa9 100644 --- a/src/main/java/jenkins/plugins/mailer/tasks/EnhancedMessage.java +++ b/src/main/java/jenkins/plugins/mailer/tasks/EnhancedMessage.java @@ -10,8 +10,7 @@ /** * A special class for overriding Message-ID header. * Some e-mail servers put the mail into spam if Message-ID header domain - * does not correspond to e-mail server domain. This class helps to overcome - * the issue. + * does not correspond to e-mail server domain. This class helps to overcome the issue. * * @author Vitaly Krivenko */ From 2810bdf8808eee99fe5ada6e04573ed7999bdcf1 Mon Sep 17 00:00:00 2001 From: Vitaly Krivenko Date: Tue, 21 Jan 2020 17:34:57 +0200 Subject: [PATCH 4/4] Adding additional field description. --- README.adoc | 1 + 1 file changed, 1 insertion(+) diff --git a/README.adoc b/README.adoc index e11ecd45..df28651a 100644 --- a/README.adoc +++ b/README.adoc @@ -33,6 +33,7 @@ Leave it empty to use the default port for the protocol (`465` if using SSL, `25 * **Reply-To Address**: Address to include in the `Reply-To` header. Up to version `1.16`, only one address is allowed, starting in version `1.17` more than one can be used. * **Charset**: character set to use to construct the message. +* **Replace Message-ID domain with**: Message-ID header new domain name. Specify @mydomain.com to override Message-ID domain name or empty text to leave it default. In order to test the configuration, you can check the _Test configuration by sending test e-mail_ checkbox, provide a destination address at the _Test e-mail recipient_ field and clicking the _Test configuration_ button.