I used the script below to replace the standard mail notifier with
email-ext.
It should be relatively easy to update it to only do the first part (remove
mail notifications).
But I don't know how exactly you would enable it back when you're done
setting up everything.
import hudson.model.*
import hudson.maven.*
import hudson.tasks.*
import hudson.plugins.emailext.*
import hudson.plugins.emailext.plugins.trigger.*
for (item in Hudson.instance.items) {
//if (item.name != "Debug env") {
// continue
//}
println("\njob: $item.name")
recipients = "\$DEFAULT_RECIPIENTS"
for (publisher in item.publishersList) {
// Search for default Mailer Publisher (doesn't exist for Maven
projects)
if(publisher instanceof Mailer) {
// save recipients
recipients = publisher.recipients
// remove publisher
item.publishersList.remove(publisher)
} else
// Or for Extended Email Publisher
if (publisher instanceof ExtendedEmailPublisher) {
// save recipients (if it already exist it overrides others values)
recipients = publisher.recipientList
item.publishers.remove(publisher)
// remove it
item.publishersList.remove(publisher)
}
}
// If we found recipients list to send mail
if (recipients != null) {
println (">CURRENT RECIPIENT : "+recipients)
// We create a new Extended Email Publisher
def eep = new ExtendedEmailPublisher();
eep.recipientList = recipients
eep.defaultSubject = "\$DEFAULT_SUBJECT"
eep.defaultContent = "\$DEFAULT_CONTENT"
// With some triggers
eep.configuredTriggers.add(new FailureTrigger(
email : new EmailType(
sendToRecipientList : true,
sendToDevelopers : false,
includeCulprits : false,
body : ExtendedEmailPublisher.PROJECT_DEFAULT_BODY_TEXT,
subject : ExtendedEmailPublisher.PROJECT_DEFAULT_SUBJECT_TEXT )))
eep.configuredTriggers.add(new FixedTrigger(
email : new EmailType(
sendToRecipientList : true,
sendToDevelopers : false,
includeCulprits : false,
body : ExtendedEmailPublisher.PROJECT_DEFAULT_BODY_TEXT,
subject : ExtendedEmailPublisher.PROJECT_DEFAULT_SUBJECT_TEXT )))
eep.configuredTriggers.add(new StillFailingTrigger(
email : new EmailType(
sendToRecipientList : true,
sendToDevelopers : false,
includeCulprits : false,
body : ExtendedEmailPublisher.PROJECT_DEFAULT_BODY_TEXT,
subject : ExtendedEmailPublisher.PROJECT_DEFAULT_SUBJECT_TEXT )))
eep.configuredTriggers.add(new AbortedTrigger(
email : new EmailType(
sendToRecipientList : true,
sendToDevelopers : false,
includeCulprits : false,
body : ExtendedEmailPublisher.PROJECT_DEFAULT_BODY_TEXT,
subject : ExtendedEmailPublisher.PROJECT_DEFAULT_SUBJECT_TEXT )))
// And we add/replace it in the project
item.publishersList.replace(eep);
} else {
println (">NO RECIPIENT")
}
}
On Thu, Nov 8, 2012 at 3:47 PM, Patrick Byrne <[email protected]> wrote:
> .... I see that I could remove the 'Send email notification' for each job,
> but I am setting up a large number of existing jobs on a new server, and I
> want to globally disable all email notifications while I set up the
> environment correctly such that large numbers of jobs do not fail and spam
> many users with bogus error messages.****
>
> ** **
>
> ** **
>
> *From:* Patrick Byrne [mailto:[email protected]]
> *Sent:* 08 November 2012 14:44
> *To:* '[email protected]'
> *Subject:* disable email notifications****
>
> ** **
>
> Hello,****
>
> ** **
>
> How can I suppress sending of email notifications in Jenkins, please?****
>
> ** **
>
> Committers to a job are being automatically notified when a job fails, I
> want to turn it off for now and I cannot see a configuration option for it.
> ****
>
> ** **
>
> Thanks,****
>
> Patrick****
>
> ** **
>
> ** **
>
--
Xavier Nodet