Я пытаюсь настроить почтовые уведомления с успешным / неудачным статусом задания Jenkins. У меня есть отдельная работа для запуска почты.
Мне нужно вызвать две разные почты для сценариев неудачи и успеха. Для этого у меня есть ниже код
import javax.mail.*
import javax.mail.internet.*
def d_email = "noreply@kpn.com",
d_uname = "noreply@kpn.com",
d_password = "",
d_host = "safemail.kpnxchange.com",
d_port = "25", //465,587
m_to = "abc@kpn.com",
m_subject = "Deployment status Jenkins Job: ${params.JobID}#${params.BuildNumber}- ${params.Status}",
m_text_success = "Success mail"
m_text_fail = " failure mail "
def props = new Properties();
props.setProperty("mail.smtp.host", d_host)
def session = Session.getDefaultInstance(props)
session.setDebug(true);
try {
def msg = new MimeMessage(session)
if (${params.status} == "Success") {
msg.setText(m_text_success)
} else {
msg.setText(m_text_fail)
}
msg.setSubject(m_subject)
msg.setFrom(new InternetAddress(d_email))
msg.addRecipient(Message.RecipientType.TO, new InternetAddress(m_to))
Transport.send(msg);
System.out.println('message sent');
} catch (MessagingException mex) {
mex.printStackTrace();
}
Здесь в приведенном выше задании ${params.Status}
- это переменная, которая передается из вышестоящего задания. И мне нужно проверить, если значение ${params.Status}
поступает в нисходящий поток как Success
, тогда оно должно установить msg.setText(m_text_success)
, а если значение ${params.Status}
поступает в нисходящий поток как Fail
, то оно должно установить msg.setText(m_text_success)
Я не могу получить условие if-else в рабочем состоянии.