diumenge, 27 de març del 2011

James com servidor de correu de desenvolupament en localhost

És molt habitual haver de desenvolupar aplicacions que involucrin enviaments de correu. Una circumstància que també és habitual és que no sempre es disposa d'un entorn de desenvolupament que incorpori servidors "controlats" de correu.

En aquest post presento el James. El James és un conjunt de mòduls i llibreries open source i desenvolupades en java que estan rel·lacionades amb l'enviament i recepció de correu electrònic.

El James es pot configurar molt fàcilment com a servidor de correu de desenvolupament en el localhost. Podrem fer aplicacions de correu que enviin per SMTP al "localhost" i podrem configurar el thunderbird per a llegir aquest compte amb els emails que ens autoenviarem, sense necessitat de servidors exteriors ni haver de sortir a Internet.

Evidentment,  això només és útil per a tasques de desenvolupament. NO estic explicant com configurar James com a servidor de correu corporatiu. Tot i que és possible fer-ho de forma senzilla.

El post està basat en la James Quick Start Guide

El primer pas és descarregar-se el James. La versió estable a dia d'avui és la 2.3.2.

Descomprimim el tar i obtenim:


Per a executar james n'hi ha prou amb fer des de la carpeta anterior on l'he desplegat,
sudo bin/run.sh
el sudo és perquè cal engegar com a root.

Pot ser que calgui
1. donar permisos (chmod +x *sh) als scripts d'arrencada
2. establir el valor de la variable  JAVA_HOME. En el meu cas, he modificat phoenix.sh per afegir-li JAVA_HOME=/opt/jdk1.6.0_22

Obtinc la pantalla de inici del James 

albert@atenea:~/james-2.3.2/bin$ sudo ./run.sh
[sudo] password for albert:
Using PHOENIX_HOME:   /home/albert/james-2.3.2
Using PHOENIX_TMPDIR: /home/albert/james-2.3.2/temp
Using JAVA_HOME:      /opt/jdk1.6.0_22
Running Phoenix:

Phoenix 4.2

James Mail Server 2.3.2
Remote Manager Service started plain:4555
POP3 Service started plain:110
SMTP Service started plain:25
NNTP Service started plain:119
FetchMail Disabled


Amb aquesta primera engegada, s'ha generat l'estructura de directoris necessària per al funcionament. Matem el procés amb Control-C.

Edito to apps/james/SAR-INF/config.xml
Busco l'etiqueta <servernames> i hi verifico que el domini és localhost. Puc posar altres dominis, però aleshores calen configuracions addicionals

<servernames>
  <servername> localhost </servername>
</servernames>

Rearranco James amb sudo bin/run.sh

Ara entro a la consola d'administració de James, el Remote Manager Service started plain:4555 fent servir telnet localhost 4555 i creo un parell d'usuaris. Entro amb login root i password root. Reviso les opcions disponibles amb Help. Amb adduser [usuari] [password]. Creo els comptes albert i stsoftlliure

albert@atenea:~$ telnet localhost 4555
Trying ::1...
Connected to localhost.
Escape character is '^]'.
JAMES Remote Administration Tool 2.3.2
Please enter your login and password
Login id:
root
Password:
root
Welcome root. HELP for a list of commands
help
Currently implemented commands:
help display this help
listusers display existing accounts
countusers display the number of existing accounts
adduser [username] [password] add a new user
verify [username] verify if specified user exist
deluser [username] delete existing user
setpassword [username] [password] sets a user's password
setalias [user] [alias] locally forwards all email for 'user' to 'alias'
showalias [username] shows a user's current email alias
unsetalias [user] unsets an alias for 'user'
setforwarding [username] [emailaddress] forwards a user's email to another email address
showforwarding [username] shows a user's current email forwarding
unsetforwarding [username] removes a forward
user [repositoryname] change to another user repository
shutdown kills the current JVM (convenient when James is run as a daemon)
quit close connection
adduser
Usage: adduser [username] [password]
adduser albert albert
User albert added
adduser stsoftlliure stsoftlliure
User stsoftlliure added
 

Ara puc provar d'enviar un correu a aquest usuari que he creat. Faré servir el Thunderbird per a enviar el correu. Primer de tot configuro els dos comptes. Indicant que el servidor és localhost.

A la imatge podeu comprovar que el thunderbird troba les adreces "sospitoses", però les deixa crear. Faig Fitxer-> Nou -> Compte de correu i empleno el formulari


Click a continuar. Thunderbird reconeix els servidors POP i SMTP de James...


Els semàfors en taronja indiquen que el servidor no és segur i que les contrasenyes viatgen en pla. Però això no em preocupa perquè, de fet, els  correus no viatjaran enlloc. Recordem que estem configurant un servidor de correu per a desenvolupament en localhost. Faig click a Crea el compte.

Ens salta aquest avís final. Marco el checkbox de "Comprenc els riscs" i creo el compte.


Repeteixo per al compte albert. En aquest moment tinc dues comptes de correu al servidor localhost: albert@localhost i stsoftlliure@localhost.

I ara ja puc  enviar correus entre els dos comptes fent servir el Thunderbird:


Ara ja disposem de servidors de POP3 i SMTP a localhost i d'un parell de comptes per a fer proves, sense necessitat de sortida a Internet.

Una eina útil per a desenvolupadors.

Cap comentari:

Publica un comentari a l'entrada