Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

<artifactId>mailer</artifactId>
<packaging>hpi</packaging>
<version>1.30-SNAPSHOT</version>
<version>1.31</version>
<name>Jenkins Mailer Plugin</name>
<description>This plugin allows you to configure email notifications for build results</description>
<url>https://github.com/jenkinsci/mailer-plugin</url>
Expand Down
5 changes: 4 additions & 1 deletion src/main/java/hudson/cli/MailCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
*/
package hudson.cli;

import hudson.tasks.EnhancedMessage;
import hudson.tasks.Mailer;
import hudson.Extension;
import jenkins.model.Jenkins;
Expand All @@ -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;
}
}
41 changes: 41 additions & 0 deletions src/main/java/hudson/tasks/EnhancedMessage.java
Original file line number Diff line number Diff line change
@@ -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);
}
}
}
}
25 changes: 24 additions & 1 deletion src/main/java/hudson/tasks/Mailer.java
Original file line number Diff line number Diff line change
Expand Up @@ -308,6 +308,11 @@ public static final class DescriptorImpl extends BuildStepDescriptor<Publisher>
*/
private String charset;

/**
* The new domain for Message-ID header.
*/
private String messageIdDomain;

/**
* Used to keep track of number test e-mails.
*/
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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));
Expand All @@ -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());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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);

Expand Down
3 changes: 3 additions & 0 deletions src/main/resources/hudson/tasks/Mailer/global.jelly
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,9 @@ THE SOFTWARE.
<f:entry title="${%Charset}" field="charset">
<f:textbox />
</f:entry>
<f:entry title="${%Replace Message-ID domain with:}" field="messageIdDomain">
<f:textbox />
</f:entry>
</f:advanced>
<f:optionalBlock title="${%Test configuration by sending test e-mail}">
<f:entry title="${%Test e-mail recipient}">
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
<div>
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.
</div>
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
<div>
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.
</div>
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
<div>
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.
</div>
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
<div>
メッセージIDヘッダーの新しいドメイン名。 一部の電子メールサーバーは、メッセージIDヘッダーのドメイン名がサーバーのドメインに対応していない場合、迷惑メールを送信します。 @mydomain.com を指定して、Message-IDドメイン名または空のテキストをオーバーライドしてデフォルトのままにします。
</div>
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
<div>
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.
</div>
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
<div>
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.
</div>
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
<div>
Новое доменное имя для заголовка Message-ID. Некоторые почтовые серверы помещают электронную почту в нежелательную, если имя домена для заголовка Message-ID не соответствует домену сервера. Укажите @mydomain.com, чтобы переопределить доменное имя для заголовка Message-ID или пустой текст, чтобы оставить его по умолчанию.
</div>
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
<div>
İ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.
</div>
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
<div>
Message-ID标头的新域名。 如果Message-ID标头域名与服务器的域不对应,则某些电子邮件服务器会将电子邮件放入垃圾邮件。 指定@ mydomain.com以覆盖Message-ID域名或空文本以将其保留为默认值。
</div>