package Ġby . dev . mad head . dev notifier Ċ Ċ import Ġby . dev . mad head . dev notifier . model . Email Ċ import Ġby . dev . mad head . dev notifier . util . Message Builder Ċ import Ġh udson . Abort Exception Ċ import Ġh udson . tasks . Mailer Ċ import Ġorg . apache . logging . log 4 j . Level Ċ import Ġorg . apache . logging . log 4 j . Log Manager Ċ import Ġjava . io . IOException Ċ import Ġjava . io . Print Stream Ċ import Ġjava . util .* Ċ import Ġjavax . mail .* Ċ Ċ class ĠDev Notifier Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġsession Ġ= Ġfun (): ĠSession Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmail er Descriptor Ġ= ĠMail er . descriptor () ĊĠĠĠĠĠĠĠ Ġreturn ĠSession . getDefaultInstance ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProperties (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis [" mail . smtp . host "] Ġ= Ġmail er Descriptor . smtp Server ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis [" mail . smtp . port "] Ġ= Ġmail er Descriptor . smtp Port ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis [" mail . smtp . auth "] Ġ= Ġ(! mailer Descriptor . smtp Auth UserName . isNull Or Blank ()). toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis [" mail . smtp . ssl . enable "] Ġ= Ġmail er Descriptor . use Ssl ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! mailer Descriptor . smtp Auth UserName . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠAuth enticator () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Password Authentication (): ĠPassword Authentication Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠPassword Authentication ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmail er Descriptor . smtp Auth UserName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmail er Descriptor . smtp Auth Password ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} () ĊĊĠĠĠ Ġfun Ġsend Mail ( email : ĠEmail , Ġdefault Recipients Addresses : ĠSet < Address >, Ġlogger : ĠPrint Stream ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmessage Builder Ġ= ĠMessage Builder ( email , Ġdefault Recipients Addresses ) ĊĠĠĠĠĠĠĠ Ġif Ġ( message Builder . is Msg Has Recipients ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTransport . send ( message Builder . build Message ( session )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . println (" Emails Ġsent Ġto : Ġ${ message Builder . recipients Info () }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠMessaging Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Exception ( logger , Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Exception ( logger , Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . println (" No Ġrecipients Ġto Ġsend Ġemail .") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhandle Exception ( jenkins Logger : ĠPrint Stream , Ġe : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġjenkins Logger . println (" Error Ġwhile Ġsending Ġemail .") ĊĠĠĠĠĠĠĠ ĠLog Manager . getLogger (). log ( Level . ERROR , Ġe . stack Trace ) ĊĠĠĠĠĠĠĠ Ġthrow ĠAbort Exception ("${ e . cause }: Ġ${ e . message }") ĊĠĠĠ Ġ} Ċ Ċ }