Как я могу установить адрес отправителя в Дженкинс?

217

Я отправляю почту от Дженкинса внутреннему анонимному SMTP-реле. Затем этот ретранслятор безопасно отправляет почту для обмена в режиме онлайн через TLS через порт 587. Транспорт работает отлично, проблема заключается в том, что Microsoft требует, чтобы адрес отправителя совпадал с именем входа для учетных данных аутентификации, которое совпадает с адресом электронной почты учетной записи. Например, ради, скажем, это foo@mycompany.com. Как я могу сделать так, чтобы Дженкинс всегда отправлял почту с foo@mycompany.com?

Кстати, когда я говорю, что транспорт работает отлично, я имею в виду, что я могу перетащить отформатированный файл электронной почты в каталог «Pickup» на сервере ретрансляции SMTP, и он будет надлежащим образом отправлен любому получателю при условии, что адрес От - foo @ mycompany .com.

CTOMarc
источник
Кто-нибудь знает, как это сделать без использования интерфейса? Возможно через CLI или отличный сценарий или даже работу Дженкинса?
jdf
Ответил на мой собственный вопрос об изменении адреса электронной почты администратора без интерфейса ниже.
jdf

Ответы:

352

Jenkins использует адрес электронной почты системного администратора в качестве адреса отправителя для уведомления по электронной почте. Вы можете настроить это в Manage Jenkins -> Configure System . Это находится под заголовком Jenkins Location на этой странице! Не сразу очевидно, что этот параметр связан с настройками уведомлений по электронной почте, поскольку он не находится под заголовком уведомления по электронной почте на странице конфигурации.

Friso
источник
1
Используя Ubuntu 12.04, локальный exim4 и Jenkins 1.565.1, установленные из внешнего репозитория, мне пришлось установить это для того, чтобы доставка почты работала.
Макс Хохенеггер
96

Управление Jenkins -> Настройка системы -> Расположение Jenkins -> Адрес электронной почты системного администратора

Вы можете выполнить поиск на странице «Расположение Jenkins», чтобы изменить значение по умолчанию для адреса, который еще не настроен, на любое другое.

Аншу Пратик
источник
Управление Дженкинс -> Настройка системы -> Дженкинс Location -> Системный администратор электронной почты прямо на точку, Тпх
Frohlich
22

Есть два места, чтобы добавить "E-Mail Notificaitons"

  1. Глобальный уровень
  2. Местный уровень (уровень работы Дженкинса)

Чтобы установить уведомление по электронной почте на глобальном уровне , выполните следующие действия: 1) Перейти к управлению Jenkins 2) Настроить систему 3) Расположение Jenkins 4) Адрес электронной почты системного администратора

введите описание изображения здесь

Чтобы установить уведомление по электронной почте на локальном уровне (для уровня задания Jenkins), выполните следующие действия: 1) Нажмите на название задания (если оно существует) 2) нажмите «Настроить» 3) Затем найдите «Пост- Действие по сборке "4) Укажите адрес электронной почты в разделе" Уведомление по электронной почте ". 5) Сохраните изменения.

введите описание изображения здесь

Санджит Пандей
источник
1
На местном уровне это не адрес отправителя, а адрес получателя. Я думаю, что невозможно настроить адрес электронной почты отправителя на уровне работы без написания пользовательских сценариев для отправки электронной почты.
инсайд
11

Я не уверен, что это именно то, что вы имели в виду, но Jenkins позволяет вам предоставить полный адрес электронной почты отправителя для уведомлений. Перейдите в раздел «Управление jenkins» , затем « Конфигурация системы» и найдите раздел « Уведомление по электронной почте» .

Вы можете предоставить свой адрес электронной почты в виде Jenkins <foo@mycompany.com>.

Лукаш Ранек
источник
8
По состоянию на апрель 2015 года это, Управление Jenkins> Настройка системы> Адрес электронной почты системного администратора
Шириш Хирекоди
10

Если вам нужно сделать это без использования пользовательского интерфейса jenkins (например, при автоматизации установки 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()

Обратите внимание: я не писал этот сценарий (хотя я проверял его, и он работает), все заслуги Питера Хэллидея и его веб-сайта с другими полезными сценариями здесь .

JDF
источник