GithubHelp home page GithubHelp logo

jenkinsci / poll-mailbox-trigger-plugin Goto Github PK

View Code? Open in Web Editor NEW

This project forked from nickgrealy/poll-mailbox-trigger

41.0 111.0 32.0 1.1 MB

A Jenkins plugin, to poll an email inbox, and trigger jobs based on new emails.

Home Page: https://plugins.jenkins.io/poll-mailbox-trigger-plugin/

License: MIT License

Java 57.39% HTML 1.53% Groovy 20.82% Gherkin 20.27%
adopt-this-plugin email

poll-mailbox-trigger-plugin's Introduction

GitHub release license

Build Status Dependency Status Codacy Badge codecov Join the chat at https://gitter.im/jenkinsci/poll-mailbox-trigger-plugin

Poll Mailbox Trigger Plugin

A Jenkins plugin, to poll an email inbox, and trigger jobs based on new emails.

Table of contents

  1. Overview
    1. Usage
    2. Support
    3. Rationale
  2. Building
  3. Screenshots
  4. Configuration
    1. GMAIL (IMAPS)
    2. GMAIL (POP3S)
    3. HOTMAIL
    4. ZIMBRA
    5. Office 365
    6. MS Exchange Server 2013
    7. Want to add a server example
  5. Email Conventions
  6. Troubleshooting
  7. Want to say thanks?

Additional:

  1. Releases / Changelog
  2. Issues
  3. Wiki
  4. Source Code (GIT)
  5. Authors
  6. License

Overview

The poll-mailbox-trigger is a Jenkins "build trigger" plugin, which allows a Job to poll an email inbox. When an unread email is found, that matches the configured criteria, it:

  1. marks the email as read, so that it is not reprocessed
  2. triggers a new job

Usage

Once the plugin is installed, you can find it's configuration under YourJob > Configure > Build Triggers > Poll Mailbox Trigger. You should see something like this screenshot.

From here you can configure:

  1. The email server and account to search for UNREAD emails - here are some sample configurations for popular email services
  2. Additional filters, including:
    1. folder - the email folder to check (default "INBOX")
    2. subjectContains - the email must inlcud this subject (default "jenkins >")
    3. receivedXMinutesAgo - the email must have been received within the last X minutes (default "1440" which is 24 hours)
    4. More configuration information is available here
  3. The polling schedule - defaults to every 5 minutes

Once configured, there is an option to Test Connection. This will tell you:

  1. If there are any errors - please refer to the Troubleshooting section
  2. If the plugin can connect to the mail server successfully
  3. How many emails it can find, that match the given criteria

Hit save, and you should be done.

  1. There will now be a "View Polling Log" option under your Job, so that you can see when the polling was last checked.
  2. The plugin will now start a new job instance, for each unread email it finds. Once an email has triggered a job, the email will then be marked as READ, so that it doesn't invoke additional job instances in subsequent polling rounds.

Support

Compatibility Since Version
Java Runtime Environment 1.7+
Jenkins Server 2.7.1 LTS
Mail Server Protocols IMAP, IMAPS, POP3, POP3S

Rationale

Mainly, because I want to be able to (re)trigger a (failing) build, from the comfort of my home/beach/pub. I may not always have direct/sychronous access to the build server (due to firewalls, network access, etc). I'm already being notified by email when a job fails, why can't I just send an email response saying "retry"?

If you're working in a corporate environment, and are lucky enough to have a build server there's probably a very small chance that the build server is also exposed to the outside world (without using a VPN).

Email is:

  1. prevalent - accessible pretty much anywhere
  2. convenient - it is built into my mobile phone
  3. asychronous - I can fire it now and let it get picked up later
  4. adopted - it's already being used to notify me of failed builds

Also, some side notes:

  1. I haven't met a Jenkins interface for mobile devices that I like.
  2. Email To SMS Gateways exist, for those that don't have Email on their mobile phones.
  3. Polling is not ideal

Alternatives to polling?

  1. Utilising Push-IMAP
  2. Installing a sendmail/postfix server, forward emails to it, and write a perl script to process incoming emails.

Building

Prerequisites:

  • JDK 6 (or above)

To setup for use with Intellij IDEA

./gradlew cleanIdea idea

To run Jenkins (http://localhost:8080) locally with the plugin installed:

./gradlew clean server

To build the Jenkins plugin (.jpi) file:

./gradlew clean jpi

To publish/release the Jenkins plugin:

  1. Update the version in gradle.properties, to remove "-SNAPSHOT" (increment and re-add after publishing)
  2. Setup the ~/.jenkins-ci.org credentials file as per the instructions here https://wiki.jenkins-ci.org/display/JENKINS/Gradle+JPI+Plugin
  3. Ensure gradle is using JDK7 (for dist compatibility) - ./gradlew --version
  4. Then run the command:
./gradlew clean publish
  1. (todo) automate github version increment (and above steps?)

Screenshots

Screenshot - Version 1.022

Version 1.022

Configuration

The Host field, allows you to enter the DNS name/hostname/IP Address of the server, hosting the email account service.

The Username field, allows you to enter the username required to connect to this email account.

The Password field, allows you to enter the password (N.B. or application password) required to connect to this email account.

The Advanced Email Properties field, allows you to configure the plugin, using standard key=value property notation.

You can override the following default property values:

# Connection configuration
storeName=imaps

# Search configuration
folder=INBOX
subjectContains=jenkins >
receivedXMinutesAgo=1440

# JavaMail configuration
mail.debug=true
mail.debug.auth=true
mail.imaps.host=<above_host>
mail.imaps.port=993

You can also add java imap properties, to further configure the connection.

Sample Configurations

Below are some sample configurations for common web based email services:

GMAIL (IMAPS)

For google passwords, go to "Google account > security > app passwords".

host=imap.gmail.com
username=<your_email>@gmail.com
password=<your_application_password>

GMAIL (POP3S)

For google passwords, go to "Google account > security > app passwords".

host=pop.gmail.com
username=<your_email>@gmail.com
password=<your_application_password>

storeName=pop3s

HOTMAIL

For hotmail passwords, go to "Account Settings > Security Info > Create a new app password".

host=imap-mail.outlook.com
username=<your_email>@hotmail.com
password=<your_application_password>

ZIMBRA

host=<your_mail_server>
username=<your_email>
password=<your_password>
host=<your_mail_server>
username=<your_email>
password=<your_password>
mail.imap.ssl.enable=true
mail.imap.starttls.enable=true
host=<your_imap_host_server>
username=<your_email>
password=<your_password>
mail.imaps.port=993
mail.imap.ssl.enable=true
mail.imap.starttls.enable=true

Want to add a server example?

If you've managed to successfully setup a connection, 
please contact me, and I'll update this section.

Email Conventions

Job Parameters

The following build parameters, are injected into the job (sample values provided):

From the Incoming Email

Name Sample value
pmt_content <the email's content>
pmt_contentType multipart/ALTERNATIVE; boundary=1234
pmt_flags SEEN
pmt_folder INBOX
pmt_from Me <[email protected]>
pmt_headers Delivered-To=[email protected] etc
pmt_messageNumber 14
pmt_receivedDate 2014-10-14T12:19Z
pmt_recipients [email protected]
pmt_replyTo Me <[email protected]>
pmt_sentDate 2014-10-14T12:19Z
pmt_subject Jenkins > My Job

From the poll-mailbox-trigger configuration

Name Sample value
pmt_mail.debug TRUE
pmt_mail.debug.auth TRUE
pmt_mail.imaps.host imap.gmail.com
pmt_mail.imaps.port 993
pmt_host imap.gmail.com
pmt_username [email protected]
pmt_storeName imaps
pmt_receivedXMinutesAgo 1440
pmt_subjectContains Jenkins >

Calculated values (pmt_subject - pmt_subjectContains)

Name Sample value
pmt_jobTrigger My Job

N.B. Please note, these variables are injected into the triggered build (only). No other actions (implied or assumed) are taken. (e.g. No jenkins node filtering is performed, unless you've configured the job to do so. No additional jobs are triggered, unless you've configured the job to do so. And so on.)

Helpful Tips

Simple "Retry" email link on failed builds
  1. Setup a "Mail Trigger" job, which builds other jobs based on the "pmt_jobTrigger" value.

  2. Setup an editable Email notification on the target job, so that it emails you when a job has failed.

  3. Include the following html, in the editable Email job configuration.

    <a href="mailto:<jenkins_poll_mailbox>@gmail.com?subject=Jenkins > $JOB_NAME">Retry $JOB_NAME</a>

That way, when the job fails, it will email you a nice "Retry My Job" link. Clicking on it, opens a new email, which you can just send straight away (good for mobile phones).

Custom Job Parameters

As of version 0.15, you can pass addition custom job parameters to the new build, by simply putting key=value property notation into the content of your email. N.B. both text/plain and text/html content types are supported. Emails with attachments have not yet been tested.

For example:

Hi Jenkins,

Please execute the job with these parameters:

fruit=banana
veg=carrot
[email protected]

--
Kind regards,

Nick

Will inject the following job parameters into the new job instance:

Name Value
fruit banana
veg carrot
email [email protected]

Troubleshooting

###1a. Error : javax.mail.MessagingException: Connection timed out: connect; ###1b. Error : javax.mail.MessagingException: Connection refused;

Solution: Check the Jenkins server can access the email server and port, by running the command (from the Jenkins server):

telnet <your_host> <your_port_143_or_993>

If you get a message similar to the following, then there is no way to create a direct connection to the mail server - probably the network is down, or the connection has been (a: passively / b: actively) blocked by a firewall. If so, please check your network settings with your network administrator. You may need to specify SOCKS proxy details, in the Advanced Email Properties.

Connecting To imap.gmail.com...Could not open connection to the host, on port 993: Connect failed

###2. Error : javax.mail.AuthenticationFailedException: [AUTHENTICATIONFAILED] Invalid credentials (Failure)

Solution: Check the credentials you're using are correct.

###3. Error: javax.mail.MessagingException: com.ibm.jsse2.util.j: PKIX path building failed: java.security.cert.CertPathBuilderException: PKIXCertPathBuilderImpl could not build a valid CertPath.; ...

Solution: To ignore certificate verification errors, you can use the following config property:

mail.imaps.ssl.trust=*

Warning: it's not advisable to ignore certificate verification errors (unless perhaps in a test environment): this defeats the point of using SSL/TLS. Instead, if you know you trust that server certificate, import it in your trust store, and specify the location of the trust store using:

javax.net.ssl.trustStrore=/path/to/cacerts.jks

###4. Error : java.lang.NullPointerException at org.jenkinsci.plugins.pollmailboxtrigger.PollMailboxTrigger.initialiseDefaults(PollMailboxTrigger.java:98)

Solution: I'm not quite sure what the cause is! If you're able to reproduce the issue, please contact me with instructions. In the meantime, the error is caught and the following message is displayed.

Could not get Jenkins instance using Jenkins.getInstance() (returns null). This can happen if Jenkins
has not been started, or was already shut down. Please see
http://javadoc.jenkins-ci.org/jenkins/model/Jenkins.html#getInstance() for more details. If you believe
this is an error, please raise an 'issue' under
https://wiki.jenkins-ci.org/display/JENKINS/poll-mailbox-trigger-plugin.

###5. Error : java.net.UnknownHostException: imaps.gmail.com

Solution: The hostname provided doesn't exist in the DNS servers. Please check that it is correct.

###6. Error : Please set the 'folder=XXX' parameter to one of the following values:

Solution: The provided folder name doesn't exist on the folder, please use one of the values listed.

Want to say thanks?

Want to say thanks but can't find the words? Coffee donations are VERY welcome!

http://wrldhq.com/2014/02/12/new-meaning-to-the-term-coffee-drip-coined/


Authors

Nick Grealy - [email protected]

License

Licensed under the MIT License (MIT)

poll-mailbox-trigger-plugin's People

Contributors

alexei-znamensky-movile avatar fendtinger avatar gitter-badger avatar nickgrealy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

poll-mailbox-trigger-plugin's Issues

Connecting to Mail Server

I am getting the below error when I try to connect to the mail server.

The port is open for the host I am using(tried telnet on cmd). I tried all the options available on the internet, and I still get this error. Not sure why. Please help with this.

In the advanced properties, I have given the below details,

storeName=imaps
mail.imaps.port=25
mail.imap.ssl.enable=false
mail.imap.starttls.enable=false
mail.debug=true
mail.debug.auth=true

Detailed Error Log:

Connecting to the mailbox...Error : javax.mail.MessagingException: Unrecognized SSL message, plaintext connection?;  nested exception is:javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection? at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:665) at javax.mail.Service.connect(Service.java:295) at javax.mail.Service.connect(Service.java:176) at org.jenkinsci.plugins.pollmailboxtrigger.mail.MailReader.connect(MailReader.java:58) at org.jenkinsci.plugins.pollmailboxtrigger.PollMailboxTrigger.checkForEmails(PollMailboxTrigger.java:238) at org.jenkinsci.plugins.pollmailboxtrigger.PollMailboxTrigger$PollMailboxTriggerDescriptor.doTestConnection(PollMailboxTrigger.java:584) at java.lang.invoke.MethodHandle.invokeWithArguments(Unknown Source) at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:343) at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:184) at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:117) at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:129) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845) at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.java:248) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845) at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.java:248) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649) at org.kohsuke.stapler.Stapler.service(Stapler.java:238) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:841) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154) at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:157) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637) at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:99) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84) at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249) at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:90) at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637) at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637) at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637) at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) at org.eclipse.jetty.server.Server.handle(Server.java:564) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:317) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110) at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124) at org.eclipse.jetty.util.thread.Invocable.invokePreferred(Invocable.java:128) at org.eclipse.jetty.util.thread.Invocable$InvocableExecutor.invoke(Invocable.java:222) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:294) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:199) at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection? at sun.security.ssl.InputRecord.handleUnknownRecord(Unknown Source) at sun.security.ssl.InputRecord.read(Unknown Source) at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source) at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source) at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source) at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source) at com.sun.mail.util.SocketFetcher.configureSSLSocket(SocketFetcher.java:507) at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:238) at com.sun.mail.iap.Protocol.(Protocol.java:113) at com.sun.mail.imap.protocol.IMAPProtocol.(IMAPProtocol.java:110) at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:632) ... 85 more

Custom Job Parameters injection if parameter in mail has prefix

We use the email plugin to provide mechanisms for our testers to approve the deployment of a new build on our test servers. basically they receive an email and have to answer to that email. In the email we put in the version which is to be deployed which we later use to kick off the deploy-jobs.
But with some email configurations the reply gets prefixes added to every line of the original message, eg FOO=bar becomes >FOO=bar.
This unfortunately does not get picked up by the plugin.

Steps to reproduce

How can we reproduce the issue

  1. create job which polls an email inbox and injects a parameter calles "FOO"
  2. send an email to that inbox with injects a parameter ">FOO=bar"
  3. the parameter will not be injected

Expected behaviour

There should be some kind of mechanism where you can use a wildcard for the parameters so this would still be picked up as "FOO"

Server configuration

Jenkins Version:
2.56

Plugin Version:
1.026

Mail Server:
imap.gmail.com

Poll mail box plugin is able to read the mail, but polling is not working or running very late..

Expected behaviour

Poll mail box trigger plugin should read the mail, once it reads job should run.

Actual behaviour

It is able to find the mail but polling is not starting or running very late(1hour/1.5hours). Initially it was running fine, suddenly it is happening like this. I neither updated Jenkins nor the plugin..Please provide me the solution.

Please see below.

Connecting to the mailbox...
Found properties:

  • [attachments:IGNORE]

  • [folder:INBOX]

  • [host:[email protected]]

  • [mail.debug:false]

  • [mail.debug.auth:false]

  • [mail.imaps.host:[email protected]]

  • [mail.imaps.port:993]

  • [password:***]

  • [receivedXMinutesAgo:1440]

  • [storeName:imaps]

  • [subjectContains:OPENED: 'test- Check Failure']

  • [username:[email protected]]
    Connected to mailbox. Searching for messages where:

  • [flag is unread]

  • [subject contains 'OPENED: 'test- Check Failure'']

  • [received date is greater than '2018/11/05 21:29:59 PM']
    ...
    Searching folder...
    Found matching email(s) : 1

  • OPENED: 'test- Check Failure' (2018/11/06 20:46:06 PM)
    'Test connection' mode enabled - server connection skipped

Server configuration

Operating system: Windows Server 2012 R2

Jenkins Version : jenkins-2.121.3

Plugin Version: Poll mail box trigger plugin-1.026

Mail Server: exhange server

One example for running late:

Mail received at 15:45:11 PM but polling has started at 4:11:03 PM
Polling started on Nov 4, 2018 4:11:03 PM
Polling for the job test
Looking nodes where the poll can be run.
Looking for a candidate node to run the poll.
Looking for a node with no predefined label.
Trying to poll with the last built on node.

Polling on master.
Connecting to the mailbox...
[Poll Mailbox Trigger] - Connected!
Found properties:

  • [attachments:IGNORE]

  • [folder:INBOX]

  • [host:]

  • [mail.debug:false]

  • [mail.debug.auth:false]

  • [mail.imaps.host:]

  • [mail.imaps.port:993]

  • [password:***]

  • [receivedXMinutesAgo:1440]

  • [storeName:imaps]

  • [subjectContains:test]

  • [[email protected]]
    Connected to mailbox. Searching for messages where:

  • [flag is unread]

  • [subject contains test

  • [received date is greater than '2018/11/03 17:11:04 PM']
    ...
    Searching folder...
    Found matching email(s) : 2

  • test (2018/11/04 15:45:11 PM)

  • test (2018/11/04 15:54:18 PM)
    Download attachments? IGNORE
    Changes found. Scheduling a build.
    Job has no parameters.
    Marked email(s) as read : 1
    Download attachments? IGNORE
    Changes found. Scheduling a build.

'Download attachments' behaviour should be configurable

As a user, I want to be able to enable downloading attachments, so that I can use them in my build.

As a user, I want to be able to DISable downloading attachments, so that I can improve the speed of triggering builds and because attachments aren't required in my build.

subjectContains not triggering when there is more text in subject

I am trying to get a build to trigger when we receive an email notifying the team of a new software release. The problem is that the 'subjectContains' trigger will not trigger on this release subject which contains platform, release name, version, etc. But it will if I remove every other text but 'release' and leave some release numbering, or add whitespace.

I'm using just parts of the subject in this issue as it shows the problem.

Steps to reproduce

How can we reproduce the issue

  1. subjectContains=release
  2. Receive email with a0.01release in subject
  3. Email will not trigger build when polling

Expected behaviour

Build will trigger.

Actual behaviour

Build will not trigger.

Server configuration

Operating system:
ubuntu-17.10.1

Jenkins Version:
Jenkins ver. 2.89.4

Plugin Version:
1.026

Mail Server:
imap.gmail.com

Additional Steps/Questions

'Testing Connection' with four unread emails.
Email : 0.01release
Email: 0.01release(
Email: a0.01release
Email: a0.01 release

All but the 'a0.01release' is found.

Connecting to the mailbox...
Found properties:

  • [attachments:IGNORE]

  • [folder:INBOX]

  • [host:imap.gmail.com]

  • [mail.debug:false]

  • [mail.debug.auth:false]

  • [mail.imaps.host:imap.gmail.com]

  • [mail.imaps.port:993]

  • [password:***]

  • [receivedXMinutesAgo:1440]

  • [storeName:imaps]

  • [subjectContains:release]

  • [username:***]
    Connected to mailbox. Searching for messages where:

  • [flag is unread]

  • [subject contains 'release']

  • [received date is greater than '2018/03/18 15:12:41 PM']
    ...
    Searching folder...
    Found matching email(s) : 3

  • 0.01release (2018/03/19 14:57:22 PM)

  • 0.01release( (2018/03/19 15:04:01 PM)

  • a0.01 release (2018/03/19 15:12:24 PM)
    'Test connection' mode enabled - server connection skipped

Result: Success!

Connecting with UPN to shared mailbox

Hi everyone,

I am having issues connecting to a shared mailbox on Exchange Server 2016.
In outlook I can connect via serviceaccount@domain/mailboxname as username (which is the universal principal name approach in Exchange).
Unfortunately this doesn't work in the plugin, I always receive

Error : javax.mail.AuthenticationFailedException: AUTHENTICATE failed.
at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:660)
at javax.mail.Service.connect(Service.java:295)
at javax.mail.Service.connect(Service.java:176)
at org.jenkinsci.plugins.pollmailboxtrigger.mail.MailReader.connect(MailReader.java:58)

Server configuration

Jenkins Version: 2.73.2
Plugin Version: 1.026

Any tips here how to resolve this?

Thanks and regards
Kevin

PS: Connection to my normal user-inbox is working without any issues so far

Error when downloading attachments with French character within the file name

Steps to reproduce

How can we reproduce the issue

  1. Set plugin to save attachment files
  2. Receive an email with attachment files that include French chars (ex : é, è) within the file name
  3. Current and futur jobs won't get triggered

Expected behaviour

Should trigger the job and shouldn't block further build

Actual behaviour

Job won't trigger and futures jobs won't get triggered either until saved attachment with french char and email get deleted manually.
Error raised (actual file is "Pro Intér.T16" in the example) :
A39 OK FETCH completed.

[ERROR] - java.io.FileNotFoundException: C:\Users\A-TEST~1\AppData\Local\Temp\1487955351560-0=?iso-8859-1?Q?Pro_Int=E9r.T16?= (The filename, directory name, or volume label syntax is incorrect)
at java.io.FileOutputStream.open0(Native Method)
at java.io.FileOutputStream.open(FileOutputStream.java:270)
at java.io.FileOutputStream.(FileOutputStream.java:213)
at java.io.FileOutputStream.(FileOutputStream.java:162)
at javax.mail.internet.MimeBodyPart.saveFile(MimeBodyPart.java:821)
at org.jenkinsci.plugins.pollmailboxtrigger.mail.utils.MailWrapperUtils$MessagesWrapper.saveAttachments(MailWrapperUtils.java:174)
at org.jenkinsci.plugins.pollmailboxtrigger.PollMailboxTrigger.checkForEmails(PollMailboxTrigger.java:303)
at org.jenkinsci.plugins.pollmailboxtrigger.PollMailboxTrigger.checkIfModified(PollMailboxTrigger.java:458)
at org.jenkinsci.lib.xtrigger.AbstractTrigger$Runner.run(AbstractTrigger.java:198)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

A40 CLOSE

Server configuration

Operating system:
Windows Server 2012R2 x64 English

Jenkins Version:
2.19.2

Plugin Version:
1.025

Mail Server:
Office 365

Additional Steps/Questions

  • Can you please provide all the configuration details you're using (hide sensitive fields) and any other information which may help?

Connection configuration

storeName=imaps

Search configuration

folder=INBOX/******
subjectContains=
#receivedXMinutesAgo=1440

JavaMail configuration

mail.debug=true
mail.debug.auth=true
mail.imaps.host=outlook.office365.com
mail.imaps.port=993

Office 365

mail.imap.ssl.enable=true
mail.imap.starttls.enable=true

  • Do you know if you're you able to connect to to your mail server via IMAP?
    Yes

  • What log messages do you receive, when you press the "Test Connection" button?
    Connecting to the mailbox...
    Found properties:

  • [attachments:AUTO]

  • [folder:INBOX/*******]

  • [host:outlook.office365.com]

  • [mail.debug:true]

  • [mail.debug.auth:true]

  • [mail.imap.ssl.enable:true]

  • [mail.imap.starttls.enable:true]

  • [mail.imaps.host:outlook.office365.com]

  • [mail.imaps.port:993]

  • [password:***]

  • [receivedXMinutesAgo:1440]

  • [storeName:imaps]

  • [username:*************]
    Connected to mailbox. Searching for messages where:

  • [flag is unread]

  • [subject contains - filter not set]

  • [received date is greater than '2017/02/23 11:57:35 AM']
    ...
    Searching folder...
    Found matching email(s) : 1

-*************** (2017/02/24 11:54:41 AM)
'Test connection' mode enabled - server connection skipped

Result: Success!

Unable to download email attachments with .msg extension

We would need to be able to download an outlook item(*.msg file), which is an attachment of an e-mail.
With the latest version of the plugin we are able to download files with extensions such as txt,jpg,zip,html etc but it fails to save the msg file.

Steps to reproduce

Send a mail to the user, with subject line , matching the outlook rule criteria, which has another outlook mail item attached to it.

Expected behaviour

The attached outlook item should be saved to the timestamped directory.

Actual behaviour

The attachment is ignored, even though the configuration is to download it to a timestamped directory.

Server configuration

Operating system: Windows Server 2008

Jenkins Version: Jenkins ver. 1.651.1

Plugin Version: 1.025

Mail Server:

Additional Steps/Questions

We have a scenario, where we would receive a mail from our integration team with certain information required to trigger our build job. This release mail has an email attached to it, from which we would need to be able to get a file location. In outlook we have created a rule which would move the mails with a particular subject to a specific folder, that will be polled for new mails.

Config :
pollingconfig

Can I use multiple `subjectContains` rows or enter masked text in Advanced Email Properties?

I need to process email by several triggers.

Our company develops two related iOS applications that we published both at once. So every time we have two similar emails from Apple where difference is app names only:
"App-name 1.2.3 (123)" for iOS is now available to test
and
"Another-app-name 1.2.3 (123)" for iOS is now available to test

I did add two Jenkins jobs with downloading DSYM files and uploading them to Crashlytics. Both jobs has email trigger with subjectContains=for iOS is now available to test, and we have excess job launches.

If I replace subjectContains=for iOS is now available to test trigger with App-name and Another-app-name, excess job launches will be appear too because of letters from non-Apple users.

Can I use double-condition trigger?
Will second subjectContains= row help me? Or may be this option support mask (eg subjectContains=* for iOS is now available to test)

Poll Mailbox Trigger plugin issue when connecting to office 365

When trying to connect to office 365 mailbox using host,userid and password using Poll Mailbox Trigger plugin, getting below error:

Connecting to the mailbox...
Error : javax.mail.MessagingException: Connection refused: connect;
nested exception is:
java.net.ConnectException: Connection refused: connect
at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:665)
at javax.mail.Service.connect(Service.java:295)
at javax.mail.Service.connect(Service.java:176)
at org.jenkinsci.plugins.pollmailboxtrigger.mail.MailReader.connect(MailReader.java:58)
at org.jenkinsci.plugins.pollmailboxtrigger.PollMailboxTrigger.checkForEmails(PollMailboxTrigger.java:238)
at org.jenkinsci.plugins.pollmailboxtrigger.PollMailboxTrigger$PollMailboxTriggerDescriptor.doTestConnection(PollMailboxTrigger.java:584)
at java.lang.invoke.MethodHandle.invokeWithArguments(Unknown Source)
at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:396)
at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:408)
at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:212)
at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:145)
at org.kohsuke.stapler.MetaClass$11.doDispatch(MetaClass.java:535)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:747)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:878)
at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:280)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:747)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:878)
at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:280)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:747)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:878)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:676)
at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:873)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1623)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
at jenkins.telemetry.impl.UserLanguages$AcceptLanguageFilter.doFilter(UserLanguages.java:128)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:157)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:64)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:90)
at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:540)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1700)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1345)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1667)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1247)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.Server.handle(Server.java:505)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:370)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:267)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:698)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:804)
at java.lang.Thread.run(Unknown Source)
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at sun.security.ssl.SSLSocketImpl.connect(Unknown Source)
at sun.security.ssl.BaseSSLSocketImpl.connect(Unknown Source)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:288)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:231)
at com.sun.mail.iap.Protocol.(Protocol.java:113)
at com.sun.mail.imap.protocol.IMAPProtocol.(IMAPProtocol.java:110)
at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:632)

Triggered Jenkins Slave Jobs Fail

Steps to reproduce

How can we reproduce the issue

  1. Set up a Linux (CentOS 7), Jenkins (1.642.2) master
  2. Set up a Jenkins Slave on Windows Server 2008
  3. Set up a mailbox trigger job and configure it to run on the slave. The triggered job should perform an ant build.
  4. When the build runs, the entire raw email is dumped in the Jenkins log, it appears to be at the start of the Ant build step.

Expected behaviour

Job succeeds. I have other email trigger jobs that run successfully on the Master build server.

Actual behaviour

Fails (see log below). When the email triggered job is started using Jenkins, then it runs successfully, it only fails when triggered via email.

Server configuration

Operating system: CentOS 7 and Windows 2008 - (yes unfortunately we must use Win'08)

Jenkins Version: 1.642.2

Plugin Version: 1.022

Jenkins Job Log output:

[PollMailboxTrigger] An email matching the filter criteria was found. (log)
[EnvInject] - Loading node environment variables.
Building remotely on MGMT-WINBLD02 (Windows2008 SQL2005) in workspace C:\Jenkins\workspace\BUILD_AND_DEPLOY_TRUNK_DEMAND
Updating http://xxxxxxxxxxxxxxxxxxxxx at revision '2016-07-02T15:07:00.498 -0600'
At revision 60412

No changes for http://xxxxxxxxxxxxxxxxxxxxx since the previous build
Checking for pre-build
Executing pre-build step
Extended Email Publisher is currently disabled in project settings
[EnvInject] - Executing scripts and injecting environment variables after the SCM step.
[BUILD_AND_DEPLOY_TRUNK_DEMAND] $ cmd.exe /C '"ant.bat "-Dpmt_contentType=multipart/ALTERNATIVE; boundary=047d7bae494e147c6e053697ca5a" -Dpmt_host=imap.gmail.com -Dpmt_receivedDate=2016-07-01T13:14Z "-Dpmt_replyTo=yyyyyyy [email protected]" -Dpmt_mail.debug.auth=false -Dpmt_sentDate=2016-07-01T13:13Z -Dpmt_recipients=[email protected] -Dpmt_username=[email protected] -Dpmt_messageNumber=1 -Dpmt_mail.imaps.port=993 "-Dpmt_headers=Delivered-To=[email protected], Received=by 10.55.100.144 with SMTP id y138csp428282qkb; Fri, 1 Jul 2016
12:14:02 -0700 (PDT), X-Received=by 10.28.167.136 with SMTP id q130mr1033898wme.62.1467400442477;
Fri, 01 Jul 2016 12:14:02 -0700 (PDT), Return-Path=[email protected], Received=from mail-wm0-x234.google.com (mail-wm0-x234.google.com.
[2a00:1450:400c:c09::234]) by mx.google.com with ESMTPS id
kz10si2362154wjb.243.2016.07.01.12.14.02 for [email protected]
(version=TLS1_2 cipher=ECDHE-RSA-AES128-MMM-SHA256 bits=128/128); Fri, 01 Jul
2016 12:14:02 -0700 (PDT), Received-SPF=neutral (google.com: 2a00:1450:400c:c09::234 is neither
permitted nor denied by domain of [email protected])
client-ip=2a00:1450:400c:c09::234;, Authentication-Results=mx.google.com; dkim=pass
[email protected]; spf=neutral (google.com:
2a00:1450:400c:c09::234 is neither permitted nor denied by domain of
[email protected]) smtp.mailfrom=[email protected], Received=by mail-wm0-x234.google.com with SMTP id a66so16879287wme.0 for
[email protected]; Fri, 01 Jul 2016 12:14:02 -0700 (PDT), DKIM-Signature=v=1; a=rsa-sha256; c=relaxed/relaxed;
d=humanify-com.20150623.gappssmtp.com; s=20150623;
h=mime-version:from:date:message-id:subject:to;
bh=zYn96f/RuR5L+tFba6FUoumi55Q5uGxb7Z/57vEXes0=;
b=RJWqyUQUFvanBUJlj7hRqQOGut/MgmXXXXX4KD8ozkLEOQZql1yTHPP76KV3G
ceRmKYOa0sdS50WRPUNsC9eLSjb5GcK3yyLnUEG3izxZVtqPW8UvS8uTaiIGY5iYd6Zt
9lHQ87zkhtdeoKCYsQ3Z9J/SFXnHaycngqL6VYBULCxUywl349YfHV4c80SyJZtpeDq0
7ubOGtEI43iiwWlpIH90CVFwqU49KZGIF1TfN9mFJmj/hhAgp0z+BJMBd+WqntAt6O3E
imlo+jBlhND+PuUg1iU3cnXZKO/iAwvN4heQd+nsAEFyLk2/C6NQ7ETmJ0b0hAvZRkmC wm2w==, X-Google-DKIM-Signature=v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net;
s=20130820;
h=x-gm-message-state:mime-version:from:date:message-id:subject:to;
bh=zYn96f/RuR5L+tFba6FUoumXXXXXxxxxGxb7Z/57vEXes0=;
b=Jh1mS5pxC0rkKEofasGA11rVs+Fa5XBlbl/7d87xSqYnp2CWo7/kQyTK19pWc5O7Ov
m4vu+42jLp3AKyBo88WJSqGGRjIlkbAkpiNXgasxkMDot2X6X/e5rYaqkZRp/jkgGECz
/dd6C9PNAHGJu6JVO9EzzKUxKYoOdrclWsOQuFOxpGI2abRKxE7oU2j30iYfn7U6Z5nt
pDxri0Piu1ztlfkkXxxxxxxxxh09HOpeCRcVHZc4lKZlrDe6tQirBrs1dxH95lpE7E
h72I4HMz24+Ox2GfBD0NWf+5CCBJs6/FWyPuAYCvaLSUmFxxFZhmy1Xi83q8an5pCJ8 /Gyw==, X-Gm-Message-State=ALyK8tLdL/GPxxxxxxxChy7y032D0gmKBc8r/ulTVVevM7SFRfUdog46ouXAbDrSjg0rtQQGIIDGAncAmJLpl6s, X-Received=by 10.194.201.73 with SMTP id jy9mr5789249wjc.150.1467400441849;
Fri, 01 Jul 2016 12:14:01 -0700 (PDT), MIME-Version=1.0, Received=by 10.28.223.11 with HTTP; Fri, 1 Jul 2016 12:13:42 -0700 (PDT), From=yyyyyyyyyyyyy [email protected], Date=Fri, 1 Jul 2016 13:13:42 -0600, Message-ID=CALsm6FhxmdMCxAFmUjGYUwA4thv3XxU5Ku1xPiR18grCnmqKA@mail.gmail.com, Subject=Jenkins > BUILD_AND_DEPLOY_TRUNK_DEMAND, To=[email protected], Content-Type=multipart/alternative; boundary=047d7bae494e147c6e053697ca5a" "-Dpmt_from=yyyyyyyyyyyyy [email protected]" "-Dpmt_jobTrigger= BUILD_AND_DEPLOY_TRUNK_DEMAND" -Dpmt_storeName=imaps -Dpmt_receivedXMinutesAgo=1440 -DPOD=dce1 "-Dpmt_subjectContains=jenkins >" -Dpmt_flags="" "-Dpmt_subject=Jenkins > BUILD_AND_DEPLOY_TRUNK_DEMAND" -Dpmt_mail.imaps.host=imap.gmail.com "-Dpmt_content=

POD=dce1

--

yyyyyyyyyyyyyy

Humanify™

[email protected]

POD=dce1

" -Dpmt_folder=xxxxxxxx -Dpmt_mail.debug=false -Denvironment=dce1 -Dbuild.number=13 -Dscript_db.onstaterules_db_name=OnStateRules -Dbuild.num=13 -Djob.name=BUILD_AND_DEPLOY_TRUNK_DEMAND_WIN -Drelease.number=trunk package && exit %%ERRORLEVEL%%"'
The syntax of the command is incorrect.
Build step 'Invoke Ant' marked build as failure
Checking for post-build
Performing post-build step
Extended Email Publisher is currently disabled in project settings
Warning: you have no plugins providing access control for builds, so falling back to legacy behavior of permitting any downstream builds to be triggered
Finished: FAILURE

incomplete custom variable

ISSUE

  • Inside the mail enter the following variable
    json={ "user_id":9, "machine_id":124, "suite_case_id":268, "device_id":2, "type_service_id":1, "movil_id":2 }

but when making an echo inside the Jenkins shell, the output is as follows

+ echo { "user_id":9, "machine_id":124, "suite_case_id":268, "device_id":2,
{ "user_id":9, "machine_id":124, "suite_case_id":268, "device_id":2,

Operating system:
Ubuntu 16.04.4 LTS
Jenkins Version:
2.107.1
Plugin Version:
1.026
Mail Server:
imap.gmail.com

Provide an option to activate/desactive key-value overriden

Hi,

I would like to have an option to activate/desactivate the key-value.

The reason is that I will have some mail_trigger jobs that will receive emails which contains key-values, which i do not want to override the mail_trigger parameters.

In another mail_trigger_2 job, i will receive emails which contains key-values which i do want to override the mail_trigger_2 parameters.

It could be a simple option, or a setting in the "Advanced Email Properties". Both solution are fine for me.

Something like :
"parameterOverride=false"

Security

There needs to be some way to filter out which e-mails are allowed to trigger jobs.

For example, it would be super useful if you could pass in the TOKEN as a parameter (on the e-mail), and then run the job as the user who owns the token.

That way, you could have access based permissions on the jobs. Right now, anyone who sends an e-mail has access to all of the jobs.

(P.S. Great work on the plugin so far)

How to add Jenkins Pipeline support

How to add Jenkins pipeline support to the current plugin. We are facing the below error.

org.apache.commons.jelly.JellyTagException: jar:file:/var/lib/jenkins/plugins/poll-mailbox-trigger-plugin/WEB-INF/lib/classes.jar!/org/jenkinsci/plugins/pollmailboxtrigger/PollMailboxTriggerAction/index.jelly:4:62: st:include No page found 'sidepanel.jelly' for class org.jenkinsci.plugins.pollmailboxtrigger.PollMailboxTrigger$InternalPollMailboxTriggerAction
at org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:124)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99)
at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99)
at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120)
at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:95)
at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:63)
at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:53)
at org.kohsuke.stapler.jelly.ScriptInvoker.execute(ScriptInvoker.java:56)
at org.kohsuke.stapler.jelly.ScriptInvoker.execute(ScriptInvoker.java:43)
at org.kohsuke.stapler.Facet.handleIndexRequest(Facet.java:282)
at org.kohsuke.stapler.jelly.JellyFacet.handleIndexRequest(JellyFacet.java:99)
at org.kohsuke.stapler.IndexViewDispatcher.dispatch(IndexViewDispatcher.java:32)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:747)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:878)
at org.kohsuke.stapler.MetaClass$9.dispatch(MetaClass.java:456)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:747)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:878)
at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:280)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:747)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:878)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:676)
at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:873)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1623)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
at jenkins.telemetry.impl.UserLanguages$AcceptLanguageFilter.doFilter(UserLanguages.java:128)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:157)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:64)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:90)
at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:540)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1700)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1345)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1667)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1247)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.Server.handle(Server.java:505)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:370)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:267)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:698)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:804)
at java.lang.Thread.run(Thread.java:748)
Caused: javax.servlet.ServletException
at org.kohsuke.stapler.Facet.handleIndexRequest(Facet.java:285)
at org.kohsuke.stapler.jelly.JellyFacet.handleIndexRequest(JellyFacet.java:99)
at org.kohsuke.stapler.IndexViewDispatcher.dispatch(IndexViewDispatcher.java:32)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:747)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:878)
at org.kohsuke.stapler.MetaClass$9.dispatch(MetaClass.java:456)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:747)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:878)
at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:280)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:747)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:878)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:676)
at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:873)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1623)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
at jenkins.telemetry.impl.UserLanguages$AcceptLanguageFilter.doFilter(UserLanguages.java:128)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:157)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:64)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:90)
at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:540)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1700)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1345)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1667)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1247)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.Server.handle(Server.java:505)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:370)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:267)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:698)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:804)
at java.lang.Thread.run(Thread.java:748)

Error: javax.mail.MessagingException: Unrecognized SSL message, plaintext connection?

Thank you very much for providing the poll mailbox trigger plugin.

I try to use the plugin with an unsecure imap connection in our intranet.
I set the advacned email properties
mail.imaps.port=143

and also try to set
mail.imap.ssl.enable=false
mail.imap.starttls.enable=false

But I always get these error message attachted below.
I also try to connect directly by telnet to the imap server, with no problem.

For me it seems, that one needs a secure connection. Are there additional options, to use a unsecure plain text connection?

=============== Error message ===============
Connecting to the mailbox...
Error : javax.mail.MessagingException: Unrecognized SSL message, plaintext connection?;
nested exception is:
javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:665)
at javax.mail.Service.connect(Service.java:295)
at javax.mail.Service.connect(Service.java:176)
at org.jenkinsci.plugins.pollmailboxtrigger.mail.MailReader.connect(MailReader.java:58)
at org.jenkinsci.plugins.pollmailboxtrigger.PollMailboxTrigger.checkForEmails(PollMailboxTrigger.java:238)
at org.jenkinsci.plugins.pollmailboxtrigger.PollMailboxTrigger$PollMailboxTriggerDescriptor.doTestConnection(PollMailboxTrigger.java:584)
at sun.reflect.GeneratedMethodAccessor3854.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:335)
at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:175)
at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:108)
at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:124)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.java:236)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.java:236)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.java:236)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649)
at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:135)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:126)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:49)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:553)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
at org.eclipse.jetty.server.Server.handle(Server.java:499)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
at sun.security.ssl.InputRecord.handleUnknownRecord(InputRecord.java:671)
at sun.security.ssl.InputRecord.read(InputRecord.java:504)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:944)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1342)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1369)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1353)
at com.sun.mail.util.SocketFetcher.configureSSLSocket(SocketFetcher.java:507)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:238)
at com.sun.mail.iap.Protocol.(Protocol.java:113)
at com.sun.mail.imap.protocol.IMAPProtocol.(IMAPProtocol.java:110)
at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:632)
... 80 more

imap server and proxy with authentification

Is it possible to configure a proxy with authentification in your plugin?

I have found:
mail.imap.socks.host &
mail.imap.socks.port settings, but no property for proxy's username/password...

Could you please help?

No login methods supported exception using MS exchange

Hi,

I am getting
Connecting to the mailbox...
Error : javax.mail.MessagingException: No login methods supported!;
nested exception is:
com.sun.mail.iap.ProtocolException: No login methods supported!
at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:663)
at javax.mail.Service.connect(Service.java:295)
at javax.mail.Service.connect(Service.java:176)
at org.jenkinsci.plugins.pollmailboxtrigger.mail.MailReader.connect(MailReader.java:58)
at org.jenkinsci.plugins.pollmailboxtrigger.PollMailboxTrigger.checkForEmails(PollMailboxTrigger.java:238)
at org.jenkinsci.plugins.pollmailboxtrigger.PollMailboxTrigger$PollMailboxTriggerDescriptor.doTestConnection(PollMailboxTrigger.java:584)
at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)
at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:343)
at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:184)
at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:117)
at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:129)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.java:248)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.java:248)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649)
at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:841)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:135)
at io.jenkins.blueocean.ResourceCacheControl.doFilter(ResourceCacheControl.java:134)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
at hudson.plugins.audit_trail.AuditTrailFilter.doFilter(AuditTrailFilter.java:95)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
at org.jenkinsci.plugins.modernstatus.ModernStatusFilter.doFilter(ModernStatusFilter.java:52)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:138)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:49)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:135)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:92)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:90)
at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.Server.handle(Server.java:564)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:317)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110)
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
at org.eclipse.jetty.util.thread.Invocable.invokePreferred(Invocable.java:128)
at org.eclipse.jetty.util.thread.Invocable$InvocableExecutor.invoke(Invocable.java:222)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:294)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:199)
at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: com.sun.mail.iap.ProtocolException: No login methods supported!
at com.sun.mail.imap.IMAPStore.login(IMAPStore.java:725)
at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:643)

When I am trying to make connection with email configured with Microsoft exchange v14.3.

I also added following properties:
mail.imaps.port=993
mail.imap.ssl.enable=true
mail.imap.starttls.enable=true

Please suggest what I am missing.

Thanks in advance

Jenkins 2.7.1 LTS Support

Since Jenkins v2 has been released, the plugin no longer injects the pmt_* variables (as build parameters).

The plugin needs to be updated (and tested) to (only?) support the latest LTS (currently 2.7.1).

Request to filter subject on 'not contains'

I may also have missed something, but I did breeze through the source where the subjectContains gets used and it looks like there is no way to filter on emails not containing a specific string or value.

Is this something that could be implemented?

For example:
I need launch a project based on the receipt of an email. Where the initial project getting launched depends on the subject of the email.

The following two will work correctly (different starting project for each)

  • version 1.x
  • version 2.x

However this will not work for me:

  • Data v100
  • Data v100 custom

It would be easy (easier than a possible hack alternative or two) to exclude 'v100 custom' from the v100 project by simply saying if subjectContains=v100 and subjectNotContains=custom.

Thanks!
Ryan

Enhancement: Add the ability to filter against the User who sent the email

Issue:

We would like to have a filter against the user who sent the email as well as the subject. This would stop builds from happening if the subject comes up in a non-authorized email or with a reply-type email

Expected behaviour

I would hope that the plugin would also have a form which would allow particular emails to be "authorized" and the plugin would check for the subject and who sent the email

Actual behaviour

Right now the plugin only checks on the subject

Server configuration

Any

Additional Steps/Questions

These I feel like I can ignore since this is a net new enhancement rather than a bug/issue

Can I replace the equal sign with other custom sign

Operating system: macos 10.14.6

Jenkins Version: 2.176.2

Plugin Version:1.026

Mail Server: outlook365

I encountered a problem in the process of using it, can you give me some help?
Because the template of my email content can't be modified, I want get custom job parameters.
Can I replace the equal sign with the colon sign?
What should I do if I can?

Custom Job Parameters
https://github.com/jenkinsci/poll-mailbox-trigger-plugin#custom-job-parameters

Jenkins StackTrace while using pulgin with pipeline

Jenkins Version:
Jenkins ver. 2.138.1

plugin version : 1.026

Stack trace
org.apache.commons.jelly.JellyTagException: jar:file:/var/lib/jenkins/plugins/poll-mailbox-trigger-plugin/WEB-INF/lib/classes.jar!/org/jenkinsci/plugins/pollmailboxtrigger/PollMailboxTriggerAction/index.jelly:4:62: st:include No page found 'sidepanel.jelly' for class org.jenkinsci.plugins.pollmailboxtrigger.PollMailboxTrigger$InternalPollMailboxTriggerAction
at org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:124)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99)
at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120)
at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:95)
at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:63)
at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:53)
at org.kohsuke.stapler.jelly.JellyClassTearOff.serveIndexJelly(JellyClassTearOff.java:112)
at org.kohsuke.stapler.jelly.JellyFacet.handleIndexRequest(JellyFacet.java:140)
at org.kohsuke.stapler.IndexViewDispatcher.dispatch(IndexViewDispatcher.java:30)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:734)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:864)
at org.kohsuke.stapler.MetaClass$10.dispatch(MetaClass.java:374)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:734)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:864)
at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.java:248)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:734)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:864)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:668)
at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:865)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1655)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
at org.jenkinsci.plugins.ssegateway.Endpoint$SSEListenChannelFilter.doFilter(Endpoint.java:243)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
at io.jenkins.blueocean.auth.jwt.impl.JwtAuthenticationFilter.doFilter(JwtAuthenticationFilter.java:61)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
at io.jenkins.blueocean.ResourceCacheControl.doFilter(ResourceCacheControl.java:134)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
at javax.servlet.FilterChain$doFilter.call(Unknown Source)
at com.ceilfors.jenkins.plugins.jiratrigger.ExceptionLoggingFilter.doFilter(ExceptionLoggingFilter.groovy:29)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:157)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:105)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:90)
at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1317)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1219)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.Server.handle(Server.java:531)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:352)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:281)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102)
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
at winstone.BoundedExecutorService.lambda$scheduleNext$0(BoundedExecutorService.java:80)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused: javax.servlet.ServletException
at org.kohsuke.stapler.jelly.JellyClassTearOff.serveIndexJelly(JellyClassTearOff.java:117)
at org.kohsuke.stapler.jelly.JellyFacet.handleIndexRequest(JellyFacet.java:140)
at org.kohsuke.stapler.IndexViewDispatcher.dispatch(IndexViewDispatcher.java:30)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:734)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:864)
at org.kohsuke.stapler.MetaClass$10.dispatch(MetaClass.java:374)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:734)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:864)
at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.java:248)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:734)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:864)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:668)
at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:865)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1655)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
at org.jenkinsci.plugins.ssegateway.Endpoint$SSEListenChannelFilter.doFilter(Endpoint.java:243)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
at io.jenkins.blueocean.auth.jwt.impl.JwtAuthenticationFilter.doFilter(JwtAuthenticationFilter.java:61)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
at io.jenkins.blueocean.ResourceCacheControl.doFilter(ResourceCacheControl.java:134)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
at javax.servlet.FilterChain$doFilter.call(Unknown Source)
at com.ceilfors.jenkins.plugins.jiratrigger.ExceptionLoggingFilter.doFilter(ExceptionLoggingFilter.groovy:29)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:157)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:105)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:90)
at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1317)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1219)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.Server.handle(Server.java:531)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:352)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:281)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102)
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
at winstone.BoundedExecutorService.lambda$scheduleNext$0(BoundedExecutorService.java:80)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

Variables like $pmt_from, $subject, $subjectContains is not working.

Steps to reproduce

How can we reproduce the issue

  1. Create a Job and configure poll trigger.
  2. Add editable email notification and add the following $pmt_from, $subject, $subjectContains.
  3. Now trigger the job with a email, now the email doesn't go to the job trigger ($pmt_from).

Expected behaviour

The email should go to job trigger ($pmt_from).

Actual behaviour

Email trigger fails Error sending to the following INVALID addresses: $pmt_from"

Server configuration

Operating system: Windows 2012 server

Jenkins Version: 2.15

Plugin Version: 1.022

Additional Steps/Questions

  • Can you please provide all the configuration details you're using (hide sensitive fields) and any other information which may help? (does it match the examples here?)
  • [Yes ] Do you know if you're you able to connect to to your mail server via IMAP?
  • [ Success] What log messages do you receive, when you press the "Test Connection" button?
  • [ Yes] Have you followed the troubleshooting section on the plugin page?

If you're feeling ambitious, you can also try setting up a LogRecorder for the Jenkins plugin (the logger package name will be something like "org.jenkinsci.plugins.pollmailboxtrigger"). This may provide extra insight into why your issue is occurring.

Clicking the inline help-button of the "Poll Mailbox" build trigger does NOT show the plugin help

Steps to reproduce

  1. Start creating a new Jenkins job/project.
  2. Select Poll Mailbox Trigger as the build Trigger.
  3. Click on the first help icon [?] to the right of the Poll Mailbox Trigger.

Expected behaviour

Inline / pop-up help page describing the plugin should be displayed.

Actual behaviour

Error message is displayed in the inline / pop-up help section.

image

Server configuration

Operating system:
Ubuntu Linux 16.04

Jenkins Version:
2.107.3

Plugin Version:
1.026

Mail Server:
Any

Office365 behind SSO

hi,

In our organization, we use SSO based authentication to access e-mails in Office 365.
How do I use this plugin to monitor mailbox using SSO?

Thanks!

Possible bug with a jobs parameters not coming through.

If you have a job that is parameterized and set to some default values, if you trigger a build using the poll mailbox trigger then these parameters are never exposed to the job, firing the same job manually then these parameters do get exposed and can be observed with a bit of groovy script.

import hudson.model.*
import jenkins.model.*

build?.actions.find{ it instanceof ParametersAction}?.parameters.each {
  if(!it.name.startsWith('pmt_')) {
    println("${it.name}=${it.value}")
  }
}

Poll Mailbox Trigger, polls but job is not started

Poll MailBox Trigger - Test connection shows success, but the jenkins job is not getting triggered.

Your checklist for this issue
Jenkins version - Jenkins ver. 2.170

Plugin version - JavaMail version 1.5.0

OS - 10.14.3

Description
Please describe your issue here.

Polling started on 10-Jun-2019 12:21:00
Polling for the job AndroidExecution
Looking nodes where the poll can be run.
Looking for a candidate node to run the poll.
Looking for a node with no predefined label.
Trying to poll with the last built on node.

Polling on master.
Connecting to the mailbox...
DEBUG: getProvider() returning javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Oracle]

DEBUG: mail.imap.fetchsize: 16384

DEBUG: mail.imap.statuscachetimeout: 1000

DEBUG: mail.imap.appendbuffersize: -1

DEBUG: mail.imap.minidletime: 10

DEBUG: trying to connect to host "imap.gmail.com", port 993, isSSL true

OK Gimap ready for requests from 195.89.75.189 j5mb23065923wrs
A0 CAPABILITY

CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 XYZZY SASL-IR AUTH=XOAUTH2 AUTH=PLAIN AUTH=PLAIN-CLIENTTOKEN AUTH=OAUTHBEARER AUTH=XOAUTH
A0 OK Thats all she wrote! j5mb23065923wrs
DEBUG IMAP: AUTH: XOAUTH2

DEBUG IMAP: AUTH: PLAIN

DEBUG IMAP: AUTH: PLAIN-CLIENTTOKEN

DEBUG IMAP: AUTH: OAUTHBEARER

DEBUG IMAP: AUTH: XOAUTH

DEBUG: protocolConnect login, host=imap.gmail.com, user=[email protected], password=

A1 AUTHENTICATE PLAIN

AGlvc3hoaXZlQGdtYWlsLmNvbQBIaXZlMTIzNA==

CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 UIDPLUS COMPRESS=DEFLATE ENABLE MOVE CONDSTORE ESEARCH UTF8=ACCEPT LIST-EXTENDED LIST-STATUS LITERAL- SPECIAL-USE APPENDLIMIT=35651584
A1 OK [email protected] authenticated (Success)
A2 CAPABILITY

CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 UIDPLUS COMPRESS=DEFLATE ENABLE MOVE CONDSTORE ESEARCH UTF8=ACCEPT LIST-EXTENDED LIST-STATUS LITERAL- SPECIAL-USE APPENDLIMIT=35651584
A2 OK Success
[Poll Mailbox Trigger] - Connected!
Found properties:

[attachments:IGNORE]
[folder:INBOX]
[host:imap.gmail.com]
[mail.debug:true]
[mail.debug.auth:true]
[mail.imaps.host:imap.gmail.com]
[mail.imaps.port:993]
[password:***]
[receivedXMinutesAgo:1440]
[storeName:imaps]
[subjectContains:jenkins >]
[username:[email protected]]
Connected to mailbox. Searching for messages where:
[flag is unread]
[subject contains 'jenkins >']
[received date is greater than '2019/06/09 12:21:02 PM']
...
Searching folder...
DEBUG: connection available -- size: 1
A3 EXAMINE INBOX

FLAGS (\Answered \Flagged \Draft \Deleted \Seen $NotPhishing $Phishing)
OK [PERMANENTFLAGS ()] Flags permitted.
OK [UIDVALIDITY 1] UIDs valid.
1671 EXISTS
0 RECENT
OK [UIDNEXT 41328] Predicted next UID.
OK [HIGHESTMODSEQ 2136476]
A3 OK [READ-ONLY] INBOX selected. (Success)
A4 SEARCH NOT (SEEN) SUBJECT "jenkins >" SINCE 9-Jun-2019 ALL

SEARCH 1659
A4 OK SEARCH completed (Success)
A5 FETCH 1659 (ENVELOPE INTERNALDATE RFC822.SIZE)

1659 FETCH (RFC822.SIZE 14977 INTERNALDATE "10-Jun-2019 10:58:30 +0000" ENVELOPE ("Mon, 10 Jun 2019 10:58:29 +0000" "jenkins start job" ((“” NIL “” “.com")) ((“, ” NIL “” "
hivehome.com")) (("" NIL "" "")) (("[email protected]" NIL "****" "gmail.com")) NIL NIL NIL "[email protected]"))
A5 OK Success

Found matching email(s) : 1

jenkins start job (2019/06/10 11:58:30 AM)
A6 FETCH 1659 (FLAGS)
1659 FETCH (FLAGS ())
A6 OK Success

A7 FETCH 1659 (BODY.PEEK[HEADER])

1659 FETCH (BODY[HEADER] {6736}
Delivered-To: [email protected]
m
Received: by 2002:a6b:310b:0:0:0:0:0 with SMTP id j11csp3574477ioa; Mon, 10
Jun 2019 03:58:30 -0700 (PDT)
X-Google-Smtp-Sour
ce: APXvYqy4d1teP3fcfUdYWU43G3eJQeXcCzrm8UwOL/hYsuwd0p3P/Vvz8LAnFRuZixH19KGhZVni
X-Received: by 2002:a17:906:1286:: with SMTP id
k6mr22101882ejb.183.1560164310564; Mon, 10 Jun 2019 03:58:30 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1560164310; cv=none;
d=google.com;
s=arc-20160816;
b=rP1KyOqNT4qOLLT6MFfduj/PmJ1GWe0uGndhU0AToWIGCdRdHzIXlSgx90KkXtk+WC
/Xkm2fNTg+tT2uLbXV+gcKESIY6j9vPSxiM+ZZYr8IpZBo5wv1IuB1ISFxJnL3xIw7LJ
oNYRfpwO0aY+MCFVQiAxyWLZgcgOvy8acdLUXbofVJ95l1AIUQqViVJpcxj6F8vXJLWW
Aj0ZzUvudA8LU4CIfOdx8w+N95FA8dv5oKB4q3l/8x4a2lmB/wSclM16Oe8gVZimUbrQ
NPpf3hdsS9BiM958LLVUnaZhfGlQJdP+mFez9UOlSgPcCFdhyftGBRT2SdSLmawOchwY tc5Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;
s=arc-20160816;
h=mime-version:content-l
anguage:accept-language:message-id:date
:thread-index:thread-topic:subject:to:from:dkim-signature;
bh=qgL7Fy9V9zqQxC+Y7x+GjjIQkZe2LUZ2vYUh3tsHcWE=;
b=vVDaOLGpPC5r81nOv4SL78pKs26kMIQrfCppIVE6n1Xi3qSTMgJ2K1RsrPOZsdz7FW
lNs7yNoGKtn40RQ7d6FvjW0X6YweutX5qmf45LrfRLIbPOkeO30KKFcSNAY3rQBfgtOt
cqPtq+W+88mM45ol01wlszL27xKDEsFnQItaKuho30XWKTFkJADLaDk4yIvBNWVTZnlo
/x+kjMU8D7QA+yHKQzq4VrXm+dTLP8eKqg9jwHF5u7Cfky2+KcIis3a00cL5fcZv9NSk
VDK3QZirUhDGBzvvxa/7BCIVBGHDJpESh07GxxoZepoJxKvTSbNu6KNq4BTNks4T9CNo BDXg==
ARC-Authentication-Results: i=1; mx.google.com; dkim=pass
[email protected]
header.s=selector2-centricaplc-onmicrosoft-com header.b=UOMRMyBB; spf=pass
(google.com: domain of @.com designates
104.47.10.50 as permitted sender)
smtp.mailfrom=@
Return-Path: <@.com>
Received: from EUR03-DB5-obe.outbound.protection.outlook.com
(mail-db5eur03lp2050.outbound.protection.outlook.com. [104.47.10.50])
by
mx.google.com with ESMTPS id m10si3665707edl.5.2019.06.10.03.58.30 for
[email protected] (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256
bits=128/128); Mon, 10 Jun 2019 03:58:30 -0700 (PDT)
Received-SPF: pass (google.com: domain of @.com
designates 104.47.10.50 as permitted sender) client-ip=104.47.10.50;
Authentication-Results: mx.google.com; dkim=pass
[email protected]
header.s=selector2-centricaplc-onmicrosoft-com header.b=UOMRMyBB; spf=pass
(google.com: domain of [email protected] designates
104.47.10.50 as permitted sender)
smtp.mailfrom=[email protected]
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=centricaplc.onmicrosoft.com; s=selector2-centricaplc-onmicrosoft-com;
h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
bh=qgL7Fy9V9zqQxC+Y7x+GjjIQkZe2LUZ2vYUh3tsHcWE=;
b=UOMRMyBBSJKiLlc1TcLLA3B2Hnjs726NkiIsvqGFIAcJetPYXW5LtjUyzgNdBuKYOUJUmQ1a9gI/41HrEz2sH6+35y0r6ZwB6Sn9hdloK4jF63TqAy9V6hnXCGBfZEWTgP1AIYK/EuIgc8Y83w6hHGn9JhIydopnc7L+6FlMAeA=
Received: from VI1P191MB0320.EURP191.PROD.OUTLOOK.COM (52.134.22.19) by
VI1P191MB0173.EURP191.PROD.OUTLOOK.COM (10.172.13.151) with Microsoft SMTP
Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_25
6_GCM_SHA384) id
15.20.1965.12; Mon, 10 Jun 2019 10:58:29 +0000
Received: from VI1P191MB0320.EURP191.PROD.OUTLOOK.COM
([fe80::e416:1de1:d359:379e]) by VI1P191MB0320.EURP191.PROD.OUTLOOK.COM
([fe80::e416:1de1:d359:379e%5]) with mapi id 15.20.1965.017; Mon, 10 Jun 2019
10:58:29 +0000
From: "" @.com>
To: “@gmail.com" ***@gmail.com
Subject: jenkins start job
Thread-Topic: jenkins start job
Thread-Index: AQHVH3tvg++FlZ9+XUGr9h6G9N+gvw==
Date: Mon, 10 Jun 2019 10:58:29 +0000
Message-ID: [email protected]
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authen
tication-results: spf=none (sender IP is )
[email protected];
x-originating-ip: [195.89.75.182]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: ab1482c2-85ba-4b28-daf2-08d6ed929226
x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(2017052603328)(7193020);SRVR:VI1P191MB0173;
x-ms-traffictypediagnostic: VI1P191MB0173:
x-microsoft-antispam-prvs: VI1P191MB01730C24AE2133C77E6D5ABF9A130@VI1P191MB0173.EURP191.PROD.OUTLOOK.COM
x-ms-oob-tlc-oobclassifiers: OLM:3173;
x-forefront-prvs: 0064B3273C
x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(346002)(376002)(366004)(39860400002)(396003)(136003)(199004)(189003)(40134004)(5660300002)(68736007)(316002)(14454004)(76116006)(256004)(14444005)(5024004)(82746002)(73956011)(86362001)(53936002)(91956017)(83716004)(71190400001)(7736002)(2906002)(71200400001)(6916009)(2351001)(7116003)(186003)(6486002)(66946007)(3846002)(476003)(54896002)(6306002)(6512007)(478600001)(2501003)(2616005)(486006)(8936002)(8676002)(6436002)(5640700003)(1361003)(33656002)(99286004)(1730700003)(3480700005)(1411001)(64756008)(6116002)(26005)(81156014)(6506007)(102836004)(66476007)(81166006)(66556008)(66446008)(3
6756003)(66066001)(25786009)(966005);DIR:OUT;SFP:1101;SCL:1;SRVR:VI1P191MB0173;H:VI1P191MB0320.EURP191.PROD.OUTLOOK.COM;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1;
received-spf: None (protection.outlook.com: hivehome.com does not designate
permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: Vivm/NRg4wwZda7eoGCcrqWZS/Qi/QAL/mvZOO66zxV5JmzRXUg5p5kyP8VCL3otRuuiPLCHDxHDoxKO5zSeH4iLy+aC8vLtgdtOYV4gp1KvGC+GtB6Fn80oLgjnPyY6n5W70coDYJZO2wDEXGZa43t8CDkl4JLjLh8KFVWsthNQG4UNttT8eGEZBW/ADZZFsL7wf4LLbbIyJq1h6gSswfDVD6tw5YLMhHlGkyiOv+5BIboqhMuGROBThQVF9wUEcXv9E2sY3llzQvHAvWmPLyWIbLKJbzxx6xdBUHZV3bm3QCTwi9qSxEsBLoFsYiu/Wkm3GKW3VmFCrAtdNDpGesqIoW4VqDsVJEqQSiNXKJBg0QjHav9RFEDnotjUJZhwVm3DKMlleRmIe7nfgjguUk9gwJ1P2Y6fqh/40933lg4=
Content-Type: multipart/alternative;
boundary="000_19C0EE53A8CC4C0CAC7500738AE92605hivehomecom"
MIME-Version: 1.0
X-OriginatorOrg: hivehome.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ab1482c2-85ba-4b28-daf2-08d6ed929226
X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Jun 2019 10:58:29.1412 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: a603898f-7de2-45ba-b67d-d35fb519b2cf
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: vignesh.parameswari@hivehome.
com
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1P191MB0173
)
A7 OK Success

A8 FETCH 1659 (BODYSTRUCTURE)

1659 FETCH (BODYSTRUCTURE (("TEXT" "PLAIN" ("CHARSET" "utf-8") NIL NIL "BASE64" 2808 57 NIL NIL NIL)("TEXT" "HTML" ("CHARSET" "utf-8") "[email protected]" NIL "BASE64" 4850 97 NIL NIL NIL) "ALTERNATIVE" ("BOUNDARY" "000_19C0EE53A8CC4C0CAC7500738AE92605hivehomecom") NIL NIL))
[ERROR] - java.lang.RuntimeException: java.lang.NullPointerException
at org.jenkinsci.plugins.pollmailboxtrigger.mail.utils.Stringify.stringify(Stringify.java:330)
at org.jenkinsci.plugins.pollmailboxtrigger.mail.utils.MailWrapperUtils$MessagesWrapper.getMessageProperties(MailWrapperUtils.java:107)
at org.jenkinsci.plugins.pollmailboxtrigger.PollMailboxTrigger.checkForEmails(PollMailboxTrigger.java:299)
at org.jenkinsci.plugins.pollmailboxtrigger.PollMailboxTrigger.checkIfModified(PollMailboxTrigger.java:458)
at org.jenkinsci.lib.xtrigger.AbstractTrigger$Runner.run(AbstractTrigger.java:198)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException
at javax.mail.internet.ParameterList.set(ParameterList.java:533)
at com.sun.mail.imap.protocol.BODYSTRUCTURE.parseParameters(BODYSTRUCTURE.java:390)
at com.sun.mail.imap.protocol.BODYSTRUCTURE.(BODYSTRUCTURE.java:224)
at com.sun.mail.imap.protocol.BODYSTRUCTURE.(BODYSTRUCTURE.java:109)
at com.sun.mail.imap.protocol.FetchResponse.parse(FetchResponse.java:158)
at com.sun.mail.imap.protocol.FetchResponse.(FetchResponse.java:67)
at com.sun.mail.imap.protocol.IMAPResponse.readResponse(IMAPResponse.java:136)
at com.sun.mail.imap.protocol.IMAPProtocol.readResponse(IMAPProtocol.java:267)
at com.sun.mail.iap.Protocol.command(Protocol.java:312)
at com.sun.mail.imap.protocol.IMAPProtocol.fetch(IMAPProtocol.java:1453)
at com.sun.mail.imap.protocol.IMAPProtocol.fetch(IMAPProtocol.java:1445)
at com.sun.mail.imap.protocol.IMAPProtocol.fetchBodyStructure(IMAPProtocol.java:1145)
at com.sun.mail.imap.IMAPMessage.loadBODYSTRUCTURE(IMAPMessage.java:1285)
at com.sun.mail.imap.IMAPMessage.getDataHandler(IMAPMessage.java:623)
at javax.mail.internet.MimeMessage.getContent(MimeMessage.java:1446)
at org.jenkinsci.plugins.pollmailboxtrigger.mail.utils.Stringify.stringify(Stringify.java:335)
at org.jenkinsci.plugins.pollmailboxtrigger.mail.utils.Stringify.stringify(Stringify.java:328)
... 7 more

A9 CLOSE

A8 OK Success

A9 OK Returned to authenticated state. (Success)

DEBUG: added an Authenticated connection -- size: 1

A10 LOGOUT

BYE LOGOUT Requested
A10 OK 73 good day (Success)
DEBUG: IMAPStore connection dead

DEBUG: IMAPStore cleanup, force false

DEBUG: IMAPStore cleanup done

Polling complete. Took 2.5 sec.
No changes.

Any pointers would be helpful. Thanks.

ClassCastException while triggering a build

Instead of triggering the build, the following exception occurs in the jenkins.log:

WARNUNG: org.jenkinsci.plugins.pollmailboxtrigger.PollMailboxTrigger.run() failed for org.jenkinsci.plugins.workflow.job.WorkflowJob@3898e0ce[MyTISM-Core]
java.lang.ClassCastException: org.jenkinsci.plugins.workflow.job.WorkflowJob cannot be cast to hudson.model.AbstractProject
at org.jenkinsci.lib.xtrigger.AbstractTrigger.run(AbstractTrigger.java:124)
at hudson.triggers.Trigger.checkTriggers(Trigger.java:278)
at hudson.triggers.Trigger$Cron.doRun(Trigger.java:226)
at hudson.triggers.SafeTimerTask.run(SafeTimerTask.java:50)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)

Steps to reproduce

How can we reproduce the issue

  1. Create a pipeline
  2. configure build trigger with poll-mailbox-trigger plugin
  3. wait until the trigger occurs

Expected behaviour

Build should have been triggered

Actual behaviour

Above mentioned CCE is thrown and logged in jenkins.log

Server configuration

Operating system: Ubuntu 16.04.2

Jenkins Version: 2.60.1

Plugin Version: 1.025

Mail Server: gmail

Additional Steps/Questions

  • other information which may help? setup is too simple
  • Do you know if you're you able to connect to to your mail server via IMAP? Sure
  • What log messages do you receive, when you press the "Test Connection" button? Everything is ok there, it finds the trigger message I put there
  • Have you followed the [troubleshooting section on the plugin page]:
    not applicable, the mail setup is ok.

Using ExtendedChoiceParameter in our Jenkins build process, build parameter comes as empty

Steps to reproduce

How can we reproduce the issue
Use Extended Choice parameter with value as "Foo,Bar,Test" (multi-select) and delimiter as ";"

Expected behaviour

Parameter should pass as simple parameter only as (Foo;Bar;Test)

Actual behaviour

I am getting the following log message "Job property '%s' is not a Simple parameter. Keeping default value"

Server configuration

Operating system:
Windows

Jenkins Version:
Jenkins ver. 2.190.2

Plugin Version:
1.026

Mail Server:
Microsoft Exchange Server 2016

Additional Steps/Questions

  • Can you please provide all the configuration details you're using (hide sensitive fields) and any other information which may help? (does it match the examples here?)
  • Do you know if you're you able to connect to to your mail server via IMAP?
  • What log messages do you receive, when you press the "Test Connection" button?
  • Have you followed the troubleshooting section on the plugin page?

If you're feeling ambitious, you can also try setting up a LogRecorder for the Jenkins plugin (the logger package name will be something like "org.jenkinsci.plugins.pollmailboxtrigger"). This may provide extra insight into why your issue is occurring.

Polling error from Jenkins Pipeline

Hi,
While trying to to use this plugin on a pipeline job, it fails.
When I go to "Poll Mailbox Trigger Log" page, I get the following stacktrace error:
org.apache.commons.jelly.JellyTagException: jar:file:/var/lib/jenkins/plugins/poll-mailbox-trigger-plugin/WEB-INF/lib/classes.jar!/org/jenkinsci/plugins/pollmailboxtrigger/PollMailboxTriggerAction/index.jelly:4:62: st:include No page found 'sidepanel.jelly' for class org.jenkinsci.plugins.pollmailboxtrigger.PollMailboxTrigger$InternalPollMailboxTriggerAction
at org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:124)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99)
at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120)
at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:95)
at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:63)
at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:53)
at org.kohsuke.stapler.jelly.JellyClassTearOff.serveIndexJelly(JellyClassTearOff.java:112)
at org.kohsuke.stapler.jelly.JellyFacet.handleIndexRequest(JellyFacet.java:140)
at org.kohsuke.stapler.IndexViewDispatcher.dispatch(IndexViewDispatcher.java:30)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
at org.kohsuke.stapler.MetaClass$10.dispatch(MetaClass.java:374)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.java:248)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.java:248)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649)
at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:135)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:138)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:49)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:92)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:90)
at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:553)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
at org.eclipse.jetty.server.Server.handle(Server.java:499)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused: javax.servlet.ServletException
at org.kohsuke.stapler.jelly.JellyClassTearOff.serveIndexJelly(JellyClassTearOff.java:117)
at org.kohsuke.stapler.jelly.JellyFacet.handleIndexRequest(JellyFacet.java:140)
at org.kohsuke.stapler.IndexViewDispatcher.dispatch(IndexViewDispatcher.java:30)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
at org.kohsuke.stapler.MetaClass$10.dispatch(MetaClass.java:374)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.java:248)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.java:248)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649)
at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:135)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:138)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:49)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:92)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:90)
at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:553)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
at org.eclipse.jetty.server.Server.handle(Server.java:499)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

Support Exchange Server - EWS Managed API 2.0

Corporate mail servers are moving to cloud based exchange office 365 and many will no longer support/allow IMAP connectivity (** needs citation).

Provide an option to connect via "EWS Managed API 2.0" to facilitate future MS Exchange integration.

Operating system: N/A
Jenkins Version: N/A
Plugin Version: N/A
Mail Server: MS Exchange Server 2010 / Office365

Option for a Jenkins job to process emails without marking them as read on the mail server

Steps to reproduce

Setup a Jenkins job triggerred by "Poll Mailbox Trigger"

Expected behaviour

User should have an option (checkbox) to NOT mark emails on the server as read.
The default configuration should be backward compatible i.e. continue to mark processed emails as read by default.

The goal is to process incoming emails of a human's inbox
to trigger required background actions to have the necessary work-products avialabel by the time teh human reads the email.

For example, upon receiving a bug report email when i'm asleep,
sync the corresponding branch, trigger a local build and have the necessary outputs
ready for me to try things out once i wake-up and read the email.
( It is important and preferred that the original email received is NOT marked as read without me reading it! )

We can avoid repeatedly processing the same email multiple times using:
schedule <cron/jenkins pattern to specify poll-period>
receivedXMinutesAgo=poll-period

Actual behaviour

Currently unable to locate any option in the trigger configuration options to to avoid marking emails as read on the email-server.

Server configuration

Operating system:
Linux

Jenkins Version:
2.107.3

Plugin Version:
1.026

Mail Server:
Any

Additional Steps/Questions

  • Do you know if you're you able to connect to to your mail server via IMAP? Yes

"Polling has not run yet." with matching emails after "Test Connection"

Jenkins: 1.641
Plugin: 1.021

The plugin hasn't been triggering any builds of late, and is on a "once a minute" poll cycle.

When I use the "Test Connection" button, it finds matching emails just fine.

But when I check the "Poll Mailbox Trigger Log" it says that "Polling has not run yet."

What could be going on and how can I further investigate this issue?

Exception when mail has no To-Recipient

Steps to reproduce

How can we reproduce the issue

  1. receive an email with no To-Mailadresse (e.g. "Undisclosed recipients;"), the recipient is set in BCC field
  2. i've used an gmail account for the trigger postbox

Expected behaviour

The trigger should schedule a job

Actual behaviour

An Exception occured when polling

Searching folder...
Found matching email(s) : 1

  • Jenkins please start a job (2017/01/10 22:24:18 PM)
    [ERROR] - java.lang.NullPointerException
    at org.jenkinsci.plugins.pollmailboxtrigger.mail.utils.Stringify.stringify(Stringify.java:306)

Server configuration

Operating system: macOS 10.12.2

Jenkins Version: 2.39

Plugin Version: 1.025

Additional Steps/Questions

  • Can you please provide all the configuration details you're using (hide sensitive fields) and any other information which may help?
    I think this is not required here
  • Do you know if you're you able to connect to to your mail server via IMAP?
    yes
  • What log messages do you receive, when you press the "Test Connection" button?
    I think this is not required here
  • Have you followed the troubleshooting section on the plugin page?
    yes

Add "DELETE" Function To Mailbox Trigger?

Hi Nicholas,

 I was wondering if we could add a "delete" function to the poll mailbox trigger. I have a build that's scheduled to read a particular email for Oracle Database Refreshes and everytime the schedule runs around, it re-runs the build even though the email is marked "read". 

Steps to reproduce

How can we reproduce the issue

  1. Create Build
  2. Set Schedule
  3. Send trigger email to box. Once it arrives, you'll see it as "unread". The job will run, mark the email as "read", but it will still continue subsequent builds :(

Expected behaviour

I expected the build to run once, then not build again after marked read.

Actual behaviour

Build runs regardless of email status. Will continue to run until I delete the email.

Server configuration

Operating system:
Oracle Enterprise Linux 6

Jenkins Version:

1.651.3

Plugin Version:

1.023

Mail Server:

Exchange

Additional Steps/Questions

N/A

Add ability to schedule jobs

It'd be cool if I could schedule a job, by adding text to the subject, so that the job isn't run immediately.
E.g

Jenkins > Deploy @ 12pm
Jenkins > Deploy @ 12pm Tomorrow
Jenkins > Deploy @ 12.15pm 10/04/2016 EST

jenkins mailbox polling showing log

org.apache.commons.jelly.JellyTagException: jar:file:/var/lib/jenkins/plugins/poll-mailbox-trigger-plugin/WEB-INF/lib/classes.jar!/org/jenkinsci/plugins/pollmailboxtrigger/PollMailboxTriggerAction/index.jelly:4:62: st:include No page found 'sidepanel.jelly' for class org.jenkinsci.plugins.pollmailboxtrigger.PollMailboxTrigger$InternalPollMailboxTriggerAction
at org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:124)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99)
at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99)
at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120)
at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:95)
at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:63)
at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:53)
at org.kohsuke.stapler.jelly.ScriptInvoker.execute(ScriptInvoker.java:56)
at org.kohsuke.stapler.jelly.ScriptInvoker.execute(ScriptInvoker.java:43)
at org.kohsuke.stapler.Facet.handleIndexRequest(Facet.java:282)
at org.kohsuke.stapler.jelly.JellyFacet.handleIndexRequest(JellyFacet.java:99)
at org.kohsuke.stapler.IndexViewDispatcher.dispatch(IndexViewDispatcher.java:32)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:747)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:878)
at org.kohsuke.stapler.MetaClass$9.dispatch(MetaClass.java:456)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:747)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:878)
at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:280)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:747)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:878)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:676)
at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:873)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1623)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
at jenkins.telemetry.impl.UserLanguages$AcceptLanguageFilter.doFilter(UserLanguages.java:128)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:157)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:105)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:90)
at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:540)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1700)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1345)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1667)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1247)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.Server.handle(Server.java:505)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:370)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:267)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:698)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:804)
at java.lang.Thread.run(Thread.java:748)
Caused: javax.servlet.ServletException
at org.kohsuke.stapler.Facet.handleIndexRequest(Facet.java:285)
at org.kohsuke.stapler.jelly.JellyFacet.handleIndexRequest(JellyFacet.java:99)
at org.kohsuke.stapler.IndexViewDispatcher.dispatch(IndexViewDispatcher.java:32)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:747)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:878)
at org.kohsuke.stapler.MetaClass$9.dispatch(MetaClass.java:456)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:747)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:878)
at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:280)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:747)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:878)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:676)
at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:873)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1623)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
at jenkins.telemetry.impl.UserLanguages$AcceptLanguageFilter.doFilter(UserLanguages.java:128)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:157)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:105)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:90)
at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:540)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1700)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1345)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1667)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1247)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.Server.handle(Server.java:505)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:370)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:267)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:698)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:804)
at java.lang.Thread.run(Thread.java:748)

Confirmation email on receive email

It'd be good if I received a confirmation email, when my trigger email is processed, so that I know everything worked.
e.g.

RE: Jenkins > Publish @ 12pm

A Jenkins job has been successfully scheduled for 12pm, with the following parameters:
app=poll-mailbox-trigger-plugin
env=dev
version=1.2.3

Poll an email inbox Schedule dosen't work

Hi,

My job Poll an email inbox Schedule doesn't work.

I have scheduled the poll for every miniatures

after check it's seem doesn't call
Poll an email inbox Schedule at all, in log it is always like this "Polling has not run yet."

Test Connection:
"Connected to mailbox.
Searching folder...
Found matching email(s) : 1.
Result: Success!"

I tried by restarting my Jenkins instance**(https://URL/instancename/restart)** but it didn't work.

I have installed Poll Mail Box Trigger Plugin of v.1.026.

Multiple Triggers

Would it be possible to build multiple parameterized jobs from a single email?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.