web-dev-qa-db-ja.com

JenkinsとOffice365のメール通知設定

環境:

  • Windows 2008 R2
  • ジェンキンス1.580.2 LTS
  • メーラープラグイン1.12
  • メール拡張プラグイン2.39
  • Java 8

Office365のビジネスアカウントに移動した後に電子メール通知を送信するようにJenkins CIサーバーを構成するときにいくつかの問題があります。これが私の設定です:

  • JenkinsはStartTLSサポートを使用して開始されます(パラメーター '-Dmail.smtp.starttls.enabled = true'を使用)
  • SMTPサーバーは 'smtp.office365.com'
  • SMTPポートは587です
  • [〜#〜] ssl [〜#〜]はSMTP認証で無効になっています
  • アカウントは本物でパスワードは正しい
  • アカウントは[email protected]のように指定されます

メッセージは正しく送信されるはずですが、電子メールメッセージは送信されません。

次のエラーが発生します。

Failed to send out e-mail

com.Sun.mail.smtp.SMTPSendFailedException: 530 5.7.57 SMTP; Client was not authenticated to send anonymous mail during MAIL FROM

at com.Sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.Java:2057)
at com.Sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.Java:1580)
at com.Sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.Java:1097)
at javax.mail.Transport.send0(Transport.Java:195)
at javax.mail.Transport.send(Transport.Java:124)
at hudson.tasks.Mailer$DescriptorImpl.doSendTestMail(Mailer.Java:527)
at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at Sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at Sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at Java.lang.reflect.Method.invoke(Unknown Source)
at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.Java:298)
at org.kohsuke.stapler.Function.bindAndInvoke(Function.Java:161)
at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.Java:96)
at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.Java:121)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.Java:53)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.Java:745)
at org.kohsuke.stapler.Stapler.invoke(Stapler.Java:875)
at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.Java:249)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.Java:53)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.Java:745)
at org.kohsuke.stapler.Stapler.invoke(Stapler.Java:875)
at org.kohsuke.stapler.Stapler.invoke(Stapler.Java:648)
at org.kohsuke.stapler.Stapler.service(Stapler.Java:237)
at javax.servlet.http.HttpServlet.service(HttpServlet.Java:848)
at org.Eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.Java:686)
at org.Eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.Java:1494)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.Java:96)
at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.Java:58)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.Java:99)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.Java:88)
at org.Eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.Java:1482)
at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.Java:48)
at org.Eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.Java:1482)
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:86)
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:164)
at org.Eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.Java:1482)
at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.Java:46)
at org.Eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.Java:1482)
at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.Java:81)
at org.Eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.Java:1474)
at org.Eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.Java:499)
at org.Eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.Java:137)
at org.Eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.Java:533)
at org.Eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.Java:231)
at org.Eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.Java:1086)
at org.Eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.Java:428)
at org.Eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.Java:193)
at org.Eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.Java:1020)
at org.Eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.Java:135)
at org.Eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.Java:116)
at org.Eclipse.jetty.server.Server.handle(Server.Java:370)
at org.Eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.Java:489)
at org.Eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.Java:960)
at org.Eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.Java:1021)
at org.Eclipse.jetty.http.HttpParser.parseNext(HttpParser.Java:865)
at org.Eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.Java:235)
at org.Eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.Java:82)
at org.Eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.Java:668)
at org.Eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.Java:52)
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)

誰かがこれを手伝ってくれませんか?ありがとうございました

17
sturman

587の代わりにSMTPポート25を使用しましたが、機能します

3
sturman

ここで回答を確認した後も、エラーが発生しました:

クライアントには、この送信者として送信する権限がありません

だから私が逃したのはシステム管理者の電子メールアドレスを設定することであり、すべてがうまくいった-おそらくシステム管理者の電子メールを使用してメールボックスに接続する電子メールプラグインよりも。

メール通知を設定するすべての手順は次のとおりです(ext email):

Jenkinsの管理>システムの構成に移動します。

ジェンキンスの場所

System Admin e-mail address: [email protected]

拡張メール通知の下:

SMTP server: smtp.office365.com 

Default user e-mail suffix: @domain.com

User Name: [email protected]

Password: ###########

Use SSL: no

SMTP Port: 25 or 587

Charset UTF-8

ファイルの編集: "/ etc/default/jenkins"

Sudo vim /etc/default/jenkins

次の行を追加します。

Java_ARGS="-Djava.awt.headless=true -Dmail.smtp.starttls.enable=true"

ジェンキンスを再起動する

Sudo /etc/init.d/jenkins restart

ubuntu 16でテスト済み

22
dsaydon

TLSが有効になっていません。

開始時に次のJava Jenkinsのプロパティを追加するだけです:

-Dmail.smtp.starttls.enable=true

Ubuntuの場合は、次のように構成できます。

home/ubuntu# grep ^Java_ARGS /etc/default/jenkins
Java_ARGS="-Djava.awt.headless=true -Dmail.smtp.starttls.enable=true"
10
user2153517

AWS EC2 AMI Linuxを使用している場合、これは一般的な問題です。/etc/sysconfig/jenkinsを編集してJenkinsを再起動する必要があります。

両方が必要です

JENKINS_Java_OPTIONS = "-Djava.awt.headless = true -Dmail.smtp.starttls.enable = true"

そして

JENKINS_ARGS = "-Dmail.smtp.starttls.enable = true"

3
Adam

KubernetesでJenkinsを使用している場合は、YAMLファイルに以下の行を追加し、「システム管理者のメールアドレス:」に同じメールがあることを確認してください

containers:
     ...

      env:
        - name: JENKINS_OPTS
          value: "-Dmail.smtp.starttls.enable=true"

        - name: JENKINS_Java_OPTIONS
          value: "-Djava.awt.headless=true -Dmail.smtp.starttls.enable=true"

        - name: Java_OPTS
          value: >-
            -Djava.awt.headless=true
            -Dmail.smtp.starttls.enable=true
0
Eslamspot

手順:

  • メール送信者のデバッグを開く
  • 最初のデバッグ情報に次のものがあるかどうかを確認します。

    デバッグ:setDebug:JavaMailバージョン1.3

  • JavaMailのバージョンを1.4以降にアップグレードしてください。コードを変更せずに修正する必要があります。

0
Li Zhang