package Ġio . sa ag ie . cro iss ants . service Ċ Ċ import Ġio . sa ag ie . cro iss ants . domain . User Ċ import Ġorg . springframework . beans . factory . annotation . Value Ċ import Ġorg . springframework . mail . jav am ail . Java Mail Sender Ċ import Ġorg . springframework . mail . jav am ail . Mime Message Helper Ċ import Ġorg . springframework . mail . jav am ail . Mime Message Pre parator Ċ import Ġorg . springframework . scheduling . annotation . Async Ċ import Ġorg . springframework . stereotype . Service Ċ import Ġorg . thy me leaf . Template Engine Ċ import Ġorg . thy me leaf . context . Context ĊĊ Ċ @ Service Ċ class ĠEmail Service ( ĊĠĠĠĠĠĠĠ Ġval Ġmail Sender : ĠJava Mail Sender , ĊĠĠĠĠĠĠĠ Ġval Ġtemplate Engine : ĠTemplate Engine ) Ġ{ ĊĊĠĠĠ Ġ@ Value ("\ ${ send Email : true }") ĊĠĠĠ Ġval Ġsend Email Ġ= Ġtrue ĊĊĠĠĠ Ġ@ Value ("\ ${ mail From }") ĊĠĠĠ Ġval Ġmail From Ġ= Ġ"" ĊĊĠĠĠ Ġ@ Value ("\ ${ url }") ĊĠĠĠ Ġval Ġurl Ġ= Ġ"" ĊĊĊĠĠĠ Ġ@ Async ĊĠĠĠ Ġfun Ġprofile Created ( user : ĠUser ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠContext () ĊĠĠĠĠĠĠĠ Ġcontext . set Variable (" user ", Ġuser ) ĊĠĠĠĠĠĠĠ Ġcontext . set Variable (" url ", Ġurl ) ĊĊĠĠĠĠĠĠĠ Ġval Ġmessage Pre parator Ġ= ĠMime Message Pre parator Ġ{ Ġmime Message Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmessage Helper Ġ= ĠMime Message Helper ( mime Message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Helper . set To ( user . email !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Helper . set From ( mail From ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Helper . set Subject (" Account Ġcreated ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Helper . setText ( template Engine . process (" account Created ", Ġcontext ), Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsend ( message Pre parator ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Async ĊĠĠĠ Ġfun Ġprofile Status Change ( user : ĠUser ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠContext () ĊĠĠĠĠĠĠĠ Ġcontext . set Variable (" user ", Ġuser ) ĊĠĠĠĠĠĠĠ Ġcontext . set Variable (" url ", Ġurl ) ĊĊĠĠĠĠĠĠĠ Ġval Ġmessage Pre parator Ġ= ĠMime Message Pre parator Ġ{ Ġmime Message Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmessage Helper Ġ= ĠMime Message Helper ( mime Message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Helper . set To ( user . email !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Helper . set From ( mail From ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Helper . set Subject (" Status ĠChange ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Helper . setText ( template Engine . process (" status Change ", Ġcontext ), Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsend ( message Pre parator ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsend ( message Pre parator : ĠMime Message Pre parator ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( send Email ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmail Sender . send ( message Pre parator ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }