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.

0 Condivisioni

Antonio Musarra

I began my journey into the world of computing from an Olivetti M24 PC (http://it.wikipedia.org/wiki/Olivetti_M24) bought by my father for his work. Day after day, quickly taking control until … Now doing business consulting for projects in the enterprise application development using web-oriented technologies such as J2EE, Web Services, ESB, TIBCO, PHP.

Potrebbero interessarti anche...