Come inviare email da Portlet Liferay
Spesso e volentieri si presenta la necessità di dover inviare email dalla propria applicazione. Ogni piattaforma di sviluppo offre i propri strumenti per assolvere a tale compito e la piattaforma Java offre nativamente questa possibilità attraverso il framework JavaMail.
Dalla piattaforma Liferay (basata su tecnologia Java) è ovviamente possibile e "nessuno vieta" l'utilizzo di JavaMail per inviare email dalle portlet. In linea generale, sono dell'idea che utilizzare gli strumenti offerti dalla piattaforma di sviluppo del prodotto, è la strada migliore da percorrere. Per l'invio di notifiche via email, Liferay mette a disposizione il proprio Message Bus, evitando l'utilizzo diretto delle JavaMail API rendendo più semplice l'operazione.
Esistono due destinazioni configurate sul Message Bus:
- liferay/subscription_sender: su questa destinazione "risponde" il listener SubscriptionSenderMessageListener
- liferay/mail: su questa destinazione "risponde" il listener MailMessageListener
Consegnando il vostro messaggio al Message Bus su una delle precedenti destinazioni, il messaggio sarà inviato (in modo asincrono) via email. Il sistema d'invio tiene conto della configurazione Mail di Liferay (fare riferimento ai parametri SMTP).
I messaggi inviati su entrambe le destinazioni sono poi inviati come email a rispettivi destinatari, ognuna delle destinazioni ha però responsabilità diverse, in particolare:
- i messaggi che transitano su liferay/subscription_sender sono tutti quei messaggi che subiscono un "trattamento" e che saranno poi consegnati a coloro che hanno sottoscritto l'abbonamento a determinati elementi:
- Announcements
- Blogs
- Journal
- Message Boards
- Wiki
- i messaggi che transitano su liferay/mail sono in genere semplici messaggi che saranno spediti per "direttissima" via email
Sul repository Liferay Message Bus Subscribe Example Portlet è disponibile una portlet completa che mostra l'utilizzo dei due diversi meccanismi per l'invio email. La portlet di esempio, invia una mail contente la lista degli utenti che sono in stato disattivo.
Ancora una volta abbiamo visto come il Message Bus di Liferay può venire incontro alle vostre esigenze, in modo semplice ed efficace. Il Message Bus come provider del servizio "invio email" evita la proliferazione di decine di righe di codice JavaMail.