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...

Cos'è il progetto CIE/CNS Apache Docker - Developers Italia

In questo video https://youtu.be/TcAzn1POhsM introdurrò il progetto CIE/CNS Apache Docker di Developers Italia (https://developers.italia.it/it/cie/#resourcecontent-3) nato circa due anni fa.

L'obiettivo di questo progetto è quello di fornire un template pronto all'uso che realizza un sistema di autenticazione tramite la Smart Card TS-CNS (o CNS) e la CIE (Carta d'Identità Elettronica) basato su Apache HTTP. Ognuno può poi modificare o specializzare questo progetto sulla base delle proprie esigenze Si tratta di un progetto docker per la creazione di un container che implementa un sistema di mutua autenticazione o autenticazione bilaterale SSL/TLS.

Questo meccanismo di autenticazione richiede anche il certificato digitale da parte del client, certificato che in questo caso risiede all'interno della TS-CNS o della CIE. La particolarità del sistema implementato (attraverso questo container) è quella di consentire l'autenticazione tramite:

  • La TS-CNS (Tessera Sanitaria - Carta Nazionale Servizi), rilasciata dalla regione di appartenenza;
  • La CIE (Carta d'Identità Elettronica), rilasciata dal comune di residenza.

Nella versione 2.0.0 il progetto è stato aggiornato per essere uniforme alle linee guida di Bootstrap Italia. A seguire alcune risorse che possono essere utili.

  • Cos’è il progetto CIE/CNS Apache Docker (http://bit.ly/3aJ5Gbl)
  • CIE Carta d'Identità Elettronica (https://developers.italia.it/it/cie/)
  • Carta Nazionale dei Servizi (https://www.agid.gov.it/it/piattaforme/carta-nazionale-servizi)
  • Raspberry Pi – Un esempio di applicazione della TS-CNS (https://bit.ly/3hkJ8Aj)
  • Pubblicare il servizio CIE/CNS Apache Docker su Azure Cloud (http://bit.ly/3aPoq8V)
  • Come accedere al portale VETINFO tramite TS-CNS e Mac OS (http://bit.ly/2VFMKq7)