Jenkinsから内部的に匿名SMTPリレーにメールを送信しています。そのリレーは、ポート587でTLSを介してオンラインで安全にメールを送信します。トランスポートは完全に機能します。問題は、送信者アドレスがアカウントの電子メールアドレスと同じ認証資格情報ログイン名と一致することを要求することです。たとえば、これが[email protected]であるとします。ジェンキンスが常に[email protected]からメールを送信するようにするにはどうすればよいですか?
ところで、トランスポートが完全に機能すると言うとき、具体的には、フォーマットされた電子メールファイルをSMTPリレーサーバーの「ピックアップ」ディレクトリにドロップし、Fromアドレスがfoo @ mycompanyである場合、すべての受信者に適切に送信されます.com。
Jenkinsは、システム管理者の電子メールアドレスを電子メール通知の送信者アドレスとして使用します。これはJenkinsの管理->システムの設定で設定できます。これは、そのページのJenkins Locationヘッダーの下にあります!この設定が設定ページのE-mail notificationヘッダーの下にないため、この設定が電子メール通知設定に結び付けられていることはすぐにはわかりません。
Jenkinsの管理->システムの構成-> Jenkinsの場所->システム管理者の電子メールアドレス
「Jenkins Location」のページを検索して、まだ構成されていないアドレスのデフォルト値を必要なものに変更できます。
それが意図したものかどうかはわかりませんが、Jenkinsでは通知用の完全な送信者の電子メールアドレスを提供できます。 jenkinsの管理、次にシステム構成に移動し、電子メール通知というセクションを見つけます。
Jenkins <[email protected]>
の形式でメールアドレスを提供できます。
Jenkins UIを使用せずにこれを行う必要がある場合(たとえば、jenkinsセットアップの自動化で)-groovyスクリプトを使用して行うことができます。
import jenkins.model.*
def jenkinsLocationConfiguration = JenkinsLocationConfiguration.get()
jenkinsLocationConfiguration.setAdminAddress("[your admin name] <[your admin email address]>")
// example format -> .setAdminAddress("Jane Doe <foo@company_email.com>")
jenkinsLocationConfiguration.save()
注:このスクリプトは作成しませんでしたが(テストして動作しますが)、Peter Hallidayと彼のWebサイトには他の役立つgroovyスクリプト here があります。