I messaggi email vengono inviati alla tua app come richieste HTTP. Per elaborare i messaggi email in arrivo, devi associare gli indirizzi email ai servlet nella configurazione dell'applicazione e poi includere il codice servlet nell'app. L'email in arrivo genera richieste HTTP che vengono passate ai servlet appropriati per la gestione.
Configurare l'applicazione per ricevere email
Quando crei una nuova applicazione, le email in arrivo sono disattivate per impostazione predefinita. Se non attivi esplicitamente i messaggi email in arrivo inviati alla tua app, questi vengono ignorati.
Per attivare il servizio email in arrivo, modifica i file di configurazione appengine-web.xml
e
web.xml
:
Attivazione dell'email in appengine-web.xml
Modifica appengine-web.xml
aggiungendo una sezione inbound-services
che attiva il servizio email in arrivo:
I messaggi email vengono inviati alla tua app come richieste POST HTTP utilizzando il seguente URL:
/_ah/mail/<ADDRESS>
dove <ADDRESS>
è un indirizzo email completo, incluso il nome di dominio. Tieni presente che anche se l'app viene di'implementata in un dominio personalizzato, non può ricevere email inviate agli indirizzi di quel dominio.
Attivazione dell'email in web.xml
Modifica web.xml
mappando gli URL email ai servlet:
Negli snippet precedenti, /_ah/mail/*
corrisponde a tutte le email indirizzate all'app.
I servlet di posta vengono eseguiti nella versione attualmente pubblicata dell'app in App Engine.
Invio dei messaggi in arrivo in base a pattern
Se la tua app utilizza la corrispondenza di pattern, valuta la possibilità di utilizzare un approccio basato su filtri basato su i seguenti snippet di codice.
Gestore del cemento
L'handler specifico riportato sopra viene registrato utilizzando il seguente snippet in
web.xml
:
Tieni presente che le direttive security-constraint
non sono possibili sui filtri.
I criteri di sicurezza nell'handler dovranno essere introdotti in altro modo.
Gestore astratto
Gestione delle email in arrivo
L'API JavaMail include la classe MimeMessage
che puoi utilizzare per analizzare
i messaggi email in arrivo. MimeMessage
ha un costruttore che accetta un java.io.InputStream
e una sessione JavaMail, che può avere una configurazione vuota.
Crea un'istanza MimeMessage
come questa:
Puoi quindi utilizzare vari metodi per analizzare l'oggetto message
:
- Chiama
getFrom()
per restituire il mittente del messaggio. - Chiama
getContentType()
per estrarre il tipo di contenuti del messaggio. Il metodogetContent()
restituisce un oggetto che implementa l'interfacciaMultipart
. - Chiama
getCount()
per determinare il numero di componenti - Chiama
getBodyPart(int index)
per restituire una parte del corpo specifica.
Dopo aver configurato l'app per gestire le email in arrivo, puoi utilizzare la console del server di sviluppo per simulare i messaggi email in arrivo. Per scoprire di più, incluso come avviare il server di sviluppo, consulta Il server di sviluppo Java. Dopo aver avviato l'applicazione nel server di sviluppo locale, puoi accedervi visitando l'URL http://localhost:8888/_ah/admin/, sostituendo il valore 8888 con la porta che stai utilizzando se non utilizzi la porta predefinita per il server di sviluppo locale.
Nel server di sviluppo, fai clic su Posta in arrivo a sinistra, compila il modulo visualizzato e fai clic su Invia email.