Como posso definir o endereço do remetente no Jenkins?

217

Estou enviando emails de Jenkins para uma retransmissão SMTP anônima internamente. Esse retransmissor envia e-mails com segurança para troca on-line via TLS na porta 587. O transporte funciona perfeitamente, o problema é que a Microsoft exige que o endereço do remetente corresponda ao nome de login das credenciais de autenticação, que é o mesmo que o endereço de e-mail da conta. Por exemplo, digamos que seja [email protected]. Como posso fazer com que jenkins sempre envie e-mail de [email protected]?

Aliás, quando digo que o transporte funciona perfeitamente, o que quero dizer especificamente é que eu posso soltar um arquivo de email formatado no diretório "Captura" no servidor de retransmissão SMTP e ele é enviado corretamente a qualquer destinatário, desde que o endereço De seja foo @ mycompany .com.

CTOMarc
fonte
Alguém sabe como fazer isso sem usar a interface do usuário? Talvez através da CLI ou de um script groovy ou mesmo de um trabalho de Jenkins?
Jdf11
Respondi minha própria pergunta sobre como alterar o endereço de e-mail do administrador sem a interface do usuário abaixo.
Jdf11

Respostas:

352

Jenkins usa o endereço de email do administrador do sistema como endereço do remetente para a notificação por email. Você pode configurar isso em Gerenciar Jenkins -> Configurar Sistema . Isso está abaixo do cabeçalho Jenkins Location nessa página! Não é imediatamente óbvio que essa configuração está vinculada às configurações de notificação por email, pois não está no cabeçalho da notificação por email na página de configuração.

Friso
fonte
1
Usando o Ubuntu 12.04, local exim4 e Jenkins 1.565.1, instalado a partir do repositório externo, tive que definir isso para fazer a entrega de correio funcionar.
Max Hohenegger
96

Gerenciar Jenkins -> Configurar Sistema -> Localização Jenkins -> Endereço de e-mail do Administrador do Sistema

Você pode pesquisar na página "Localização Jenkins" para alterar o valor padrão do endereço ainda não configurado para o que você desejar.

Anshu Prateek
fonte
Gerenciar Jenkins -> Configurar Sistema -> Jenkins Localização -> Sistema de administração de e-mail certo endereço no ponto, tnx
Frohlich
22

Existem dois lugares para adicionar os "Notificações por email"

  1. Nível global
  2. Nível local (nível de trabalho Jenkins)

Para definir a notificação por email no nível global , siga as etapas abaixo - 1) Vá para Gerenciar o Jenkins 2) Configure o sistema 3) Localização do Jenkins 4) Endereço de email do administrador do sistema

insira a descrição da imagem aqui

Para definir a Notificação por E-mail no nível local (por nível de tarefa Jenkins), siga as etapas abaixo - 1) Clique no nome da tarefa (se houver) 2) clique em "Configurar" 3) Em seguida, procure a opção "Pós- Ação de compilação "4) Especifique o endereço de e-mail em" Notificação por e-mail ". 5) Salve as alterações.

insira a descrição da imagem aqui

Sanjeet Pandey
fonte
1
No nível local, não é o endereço do remetente, mas o do destinatário. Eu acho que não é possível configurar o endereço de email do remetente no nível do trabalho sem escrever scripts personalizados para enviar email.
Insider
11

Não tenho certeza se foi isso que você quis dizer, mas o Jenkins permite que você forneça um endereço de email do remetente completo para notificações. Vá para Gerenciar jenkins , depois Configuração do sistema e encontre a seção chamada Notificação por E-mail .

Você pode fornecer seu endereço de e-mail no formato Jenkins <[email protected]>.

Łukasz Rżanek
fonte
8
Desde abril de 2015, é possível gerenciar o Jenkins> Configurar sistema> Endereço de e-mail do administrador do sistema
Shirish Hirekodi
10

Se você precisar fazer isso sem usar a interface do usuário do jenkins (por exemplo, na automação de uma configuração do jenkins), poderá fazê-lo com um script 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()

Observe: eu não escrevi esse script (embora eu o tenha testado e funcione), todos os créditos a Peter Halliday e seu site com outros scripts groovy úteis aqui .

jdf
fonte