Может отправлять электронную почту, используя bash-скрипт, который вызывается crontab, но не заданием Jenkins.
Я установил и настроил почтовый клиент:
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, и когда Дженкинс выполнил этот сценарий bash, я заставил Дженкинса непосредственно создать письмо, затем письмо было отправлено, и я получил его в своем почтовом ящике.
1 ответ
Проблема была решена с помощью mutt
почтовый клиент
mail.sh
Файл сценария, когда вызывается заданием Jenkins, отправляет почту, и я получаю его в своем почтовом ящике.
#!/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="${mailBody/\$today/$today}"
echo "$mailBody" | mutt -s "$mailSubject" -e "set content_type=text/html" -e "my_hdr From:My Name <$sender>" -a "$zipfile" -- $recipient