Utilizzo di Davmail come gateway SMTP/IMAP verso server Exchange Activesync

From RVM Wiki
Jump to navigation Jump to search

Davmail è un applicativo java che consente di accedere ai servizi di un server Exchange ActiveSync tramite protoocllo standard SMTP/IMAP/POP/CALDAV.

In pratica si installa Davmail, lo si configura per accedere all'url di Outlook Web Access e poi si configura il proprio client email per accedere alle porte predefinite su localhost. Il client email si autenticherà con le credenziali del server Exchange.

Oltre alla modalità Desktop, è possibile anche installare Davmail come webapp sotto un tomcat, e quindi lasciarla attiva su un server ed accedere alle risorse esportate smtp/imap/pop tramite questo server

Utilizzo in modalità Desktop

  • Scaricare il pacchetto .deb dalla di Dvamail ed installarlo
  • Se si usa Unity, scaricare ed installare SystemtrayUnity
  • Lanciare Davmail e configurarlo tramite la gui
  • Configurare come server SMTP
localhost port 1025
  • UTilizare i parametri di autenticazione di Exchange

Utilizzo come Webapp Tomcat

Installazione

  • Scaricare il pacchetto WAR di Davmail
  • Fare il deploy dell'applicazione tramite Tomcat gui o copiando il war in /var/lib/tomcat9/webapps
  • Se lo si carica dal Tomcat manager, rinominarlo in davmail.war, altrimenti metterlo nella cartella davmail

Configurazione

  • Modificare il file di configurazione, impostando i parametri:
sudoedit /var/lib/tomcat9/webapps/davmail/WEB-INF/classes/davmail.properties
davmail.mode=EWS
# base Exchange OWA or EWS url
davmail.url=https://outlook.office365.com/EWS/Exchange.asmx
davmail.serve=true
davmail.allowRemote=true
davmail.logFilePath=/var/log/tomcat9/davmail.log

Autenticazione OAUTH2

  • Se il server Office365 impone l'autenticazione OAUTH2 (obbligatoria dopo 01-10-2022), dichiarare:
davmail.mode=O365Modern
log4j.logger.davmail=DEBUG


  • Riavviare l'applicazione da tomcat manager

Test

  • Testare con il proprio client email, impostando come mail server l'ip del server tomcat.
  • Le porte sono SMTP=1025 IMAP=1143
  • Username e Password sono quelle di Office365

Test OAUTH2

  • Se si usa l'autenticazioen OAUTH2, il primo login fallisce. Occorre rilevare dal log l'url:
tail -f  /var/log/tomcat9/davmail.log | grep O365Authenticator
[2022-10-03 11:57:36] [info] 2022-10-03 11:57:36,450 DEBUG [CaldavConnection-49964] davmail.exchange.auth.O365Authenticator  - Authentication successful but user consent or validation needed, please open the following url in a browser
[2022-10-03 11:57:36] [info] 2022-10-03 11:57:36,451 DEBUG [CaldavConnection-49964] davmail.exchange.auth.O365Authenticator  - https://login.microsoftonline.com/common/oauth2/authorize?client_id=facd6cff-a294-4415-b59f-c5b01937d7bd&response_type=code&redirect_uri=https%3A%2F%2Flogin.microsoftonline.com%2Fcommon%2Foauth2%2Fnativeclient&response_mode=query&login_hint=xxxx.yyyyy%40zzzz.kkk&resource=https%3A%2F%2Foutlook.office365.com
  • Autorizzare Davmail dal browser
  • Il secondo login funzionerà.

Attivazione SSL

  • Se la connessione avviene su rete pubblica è buona norma attivare la connessione SSL
  • Se si ha un certificato già esistete, convertirlo in formato pkcs12 impostando una password NON METTERE COME PASSWORD <blank>:
cd /var/lib/tomcat9/webapps/davmail/WEB-INF/classes/
 openssl pkcs12 \
 -export \
 -in /var/lib/dehydrated/certs/servername.example.com/fullchain.pem \
 -inkey /var/lib/dehydrated/certs/servername.example.com/privkey.pem \
 -passout pass:secretPassword \
 -out davmail.p12
chown tomcat: davmail.p12
  • Modificare i parametri ssl:
 sudoedit /var/lib/tomcat9/webapps/davmail/WEB-INF/classes/davmail.properties
davmail.ssl.keystoreType=PKCS12
davmail.ssl.keyPass=secretPassword
davmail.ssl.keystoreFile=/var/lib/tomcat9/webapps/davmail/WEB-INF/classes/davmail.p12
davmail.ssl.keystorePass=secretPassword
  • Riavviare la webapp e controllare i log:
sudo tail -f /var/log/tomcat9/catalina.out
  • Cambiare nel client email la cifratura in SSL/TLS (non starttls) lasciando le porte già usate

Configurazione Calendario

  • Come percorso mettere
https://servername.example.com:1080

Riferimenti