API JavaMail - Panoramica

L'API JavaMail fornisce un framework indipendente dalla piattaforma e dal protocollo per creare applicazioni di posta e messaggistica. L'API JavaMail fornisce un insieme di classi astratte che definiscono oggetti che compongono un sistema di posta. È un pacchetto opzionale (estensione standard) per la lettura, la composizione e l'invio di messaggi elettronici.

JavaMail fornisce elementi che vengono utilizzati per costruire un'interfaccia per un sistema di messaggistica, inclusi i componenti di sistema e le interfacce. Sebbene questa specifica non definisca alcuna implementazione specifica, JavaMail include diverse classi che implementano gli standard di messaggistica Internet RFC822 e MIME. Queste classi vengono fornite come parte del pacchetto di classi JavaMail.

Di seguito sono riportati alcuni dei protocolli supportati nell'API JavaMail:

  • SMTP: Acronimo per Simple Mail Transfer Protocol. Fornisce un meccanismo per recapitare la posta elettronica.

  • POP: Acronimo per Post Office Protocol. POP è il meccanismo che la maggior parte delle persone su Internet utilizza per ricevere la posta. Definisce il supporto per una singola casella di posta per ogni utente. RFC 1939 definisce questo protocollo.

  • IMAP: Acronimo per Internet Message Access Protocol. È un protocollo avanzato per la ricezione di messaggi. Fornisce supporto per più cassette postali per ogni utente, inoltre la cassetta postale può essere condivisa da più utenti. È definito in RFC 2060.

  • MIME: Acronimo per Multipurpose Internet Mail Extensions. . Non è un protocollo di trasferimento della posta. Invece, definisce il contenuto di ciò che viene trasferito: il formato dei messaggi, degli allegati e così via. Ci sono molti documenti diversi che hanno effetto qui: RFC 822, RFC 2045, RFC 2046 e RFC 2047. Come utente dell'API JavaMail, di solito non devi preoccuparti di questi formati. Tuttavia, questi formati esistono e vengono utilizzati dai programmi.

  • NNTP and Others: Esistono molti protocolli forniti da provider di terze parti. Alcuni di loro sono Network News Transfer Protocol (NNTP), Secure Multipurpose Internet Mail Extensions (S / MIME) ecc.

I dettagli di questi saranno trattati nei capitoli successivi.

Architettura

Come detto sopra, l'applicazione Java utilizza l'API JavaMail per comporre, inviare e ricevere e-mail. La figura seguente illustra l'architettura di JavaMail:

Il meccanismo astratto dell'API JavaMail è simile ad altre API J2EE, come JDBC, JNDI e JMS. Come visto il diagramma dell'architettura sopra, l'API JavaMail è divisa in due parti principali:

  • Una parte indipendente dall'applicazione: un'API (application-programming interface) viene utilizzata dai componenti dell'applicazione per inviare e ricevere messaggi di posta, indipendentemente dal provider o protocollo utilizzato.

  • Una parte dipendente dal servizio: un'interfaccia del provider di servizi (SPI) parla i linguaggi specifici del protocollo, come SMTP, POP, IMAP e NNTP (Network News Transfer Protocol). Viene utilizzato per collegare un provider di un servizio di posta elettronica alla piattaforma J2EE.