Может отправлять электронную почту, используя bash-скрипт, который вызывается crontab, но не заданием Jenkins.

654
Stephane

Я установил и настроил почтовый клиент:

sudo apt-get install heirloom-mailx sudo vi /etc/ssmtp/ssmtp.conf mailhub=smtp.mail.yahoo.com:587 FromLineOverride=YES AuthUser=myuser@yahoo.com AuthPass=mypassword UseSTARTTLS=YES 

Затем я создаю и отправляю почту в bash-скрипте:

#!/bin/sh -x sender="myuser@yahoo.com" recipient="recipient@domain.com" zipfile="results/file.zip" today=`date +\%d-\%m-\%Y` mailSubject="My subject on the "$today mailBody="Les résultats de la fiabilisation des données du $today sont dans le fichier zip.\n\nMy-Company" echo $mailBody | mail -s "$mailSubject" -r "My Company <$sender>" -S replyto="$sender" -a $zipfile $recipient 

Задание crontab отправляет почту, и я получаю ее в своем почтовом ящике:

05 12 * * * /home/.../script.sh 

Но работа Дженкинса, кажется, не отправляет ее, я ничего не получаю в своем почтовом ящике:

/home/.../script.sh > logs/script.log 2>&1 

Script.log показывает вызываемую почтовую команду:

+ mail -s My subject -r My Company <???@my-domain.com> -S replyto=???@my-domain.com -a /home/.../results/file.zip ???@my-domain.com 

Я отредактировал конфиденциальные данные.

Работа Дженкинса показывает успешный синий шар для работы.

Следует также отметить, что при использовании crontab и получении электронной почты в почтовом ящике моей компании на адрес электронной почты gmail, используемый для входа в smtp, также поступает электронная почта со следующими сведениями:

Address not found Your message wasn't delivered to root@my-domain.com because the address couldn't be found. Check for typos or unnecessary spaces and try again. 

ОБНОВЛЕНИЕ: Если вместо создания почты в script.shсценарии bash и при помощи Jenkins, выполняющего этот сценарий bash, у меня есть Jenkins, который собирает почту напрямую, тогда письмо отправляется, и я получаю его в своем почтовом ящике.

0

1 ответ на вопрос

0
Stephane

Проблема была решена с помощью muttпочтового клиента.

mail.shФайл сценария, при вызове работе Дженкинс, не отправлять почту, и я получаю его в моем почтовом ящике.

#!/bin/bash  sender="sende@domain.com"  recipient="recipient@domain.com"  zipfile="/home/.../file.zip"  today=`date +\%d-\%m-\%Y`  mailSubject="The subject "$today  mailBody=$(cat /home/.../mail-body.html) mailBody="$"  echo "$mailBody" | mutt -s "$mailSubject" -e "set content_type=text/html" -e "my_hdr From:My Name <$sender>" -a "$zipfile" -- $recipient