En este ultimo par de días, me ha tocado realizar algunas pruebas de correo electrónico, por lo que creo que tengo un poco de información agrupada aquí que les puede servir para manejar básicamente un correo electrónico desde nuestro shell (en mi caso mis pruebas son con bash).
Para enviar correo electrónico usamos el protocolo smtp, por lo tanto requerimos un servidor que ofrezca este servicio. Por otro lado, en cuanto a la recepción de correo nos apoyamos de los servidores pop. Conocer un poco mas de estos detalles es importante a la hora de comenzar nuestro trabajo de configurar un cliente de correo cualquiera que este sea. En nuestra practica vamos a configurar una cuenta de Gmal. A continuación les dejo un muy breve listado con algunos servidores.
Propietario | Servidor | Protocolo | Cifrado | Puerto |
Gmail | imap.googlemail.com | imap | ssl | 993 |
Gmail | pop.googlemail.com | pop3 | ssl | 995 |
Gmail | smtp.googlemail.com | smtp | ssl | 465 |
Yahoo | imap.mail.yahoo.com | imap | ssl | 993 |
Yahoo | pop.mail.yahoo.com | pop3 | ssl | 995 |
Yahoo | smtp.mail.yahoo.com | smtp | ssl | 465 |
Hotmail | pop3.live.com | pop3 | ssl/tls | 995 |
Hotmail | smtp.live.com | smtp | starttls | 587 |
1. Enviar correo
En el envió de correo vamos ocupar instalar un agente de envió: ssmtp. Es un paquete muy básico y simple: ssmtp. Primero hacemos la instalación y luego modificamos su archivo de configuración.
user@localhost:~$ sudo apt-get install ssmtp
user@localhost:~$ sudo vim /etc/ssmtp/ssmtp.conf
En la configuración tenemos que especificar correo electrónico, contraseña para identificarnos, servidor smtp, tipo de cifrado, etc. A continuación les muestro parcialmente mi archivo ssmtp.conf.
root=martingmail@gmail.com mailhub=smtp.gmail.com:587 AuthUser=martingmail AuthPass=xxxxxxxxxx UseSTARTTLS=YES FromLineOverride=YES rewriteDomain= hostname=martingmail@gmail.com
Una vez configurado los datos de la cuenta, asociamos el correo con una cuenta local de nuestro sistema en el archivo /etc/ssmtp/revaliases, eso lo hacemos colocando la siguiente linea "martin:martingmail@gmail.com:smtp.gmail.com:587".
Si nuestra configuracion y atutentificacion es correcta ya podemos enviar correos con mail command.
#Envio de correo, con redaccion interactiva mail -s "Mi primer correo" miamigo@sudominio.org #Envio de correo con redaccion desde el mismo shell echo "Hola" | mail -s "Mi primer correo" miamigo@sudominio.org cat miarchivo.txt | mail -s "Mi primer correo" miamigo@sudominio.org #Enviar correo con archivo adjunto uuencode ~/mifoto.png mifoto.png | mail -s "Mi foto" milindaamiga@sudominio.org #Enviar correo con archivo adjunto y texto ( cat declaraciondeamor.txt ; uuencode ~/mifoto.png mifoto.png ) | mail -s "Mi foto" milindaamiga@sudominio.org
Para el caso donde adjuntamos archivos el comando uuencode lo encontramos en el paquete sharutils, por lo que tendríamos que instalarlo también.
2. Recibir correo
Fetchmail es un programa que nos ayuda a traer los nuestros correos de un mail server remoto, por lo tanto es el que no va a traer los correos de nuestro buzón gmail. El siguiente paso es instalar fechtmail y configurar su archivo:
user@localhost:~$ sudo apt-get install fetchmail
user@localhost:~$ sudo vim ~/fetchmailrc
El siguiente es mi archivo de configuración parcial (¿Por que parciales?, por que no puedo mostrar mis datos personales)
#Cada 600 segundos actualizar set daemon 600 set logfile fetchmail.log poll pop.googlemail.com proto POP3 user "martingmail@gmail.com" pass "xxxxxxxxx" is "martin" ssl mda "/usr/bin/procmail -f %F -d %T"
Ya configurado esto, podemos leer los correos con el mail command, y hacer las operaciones básicas que este nos ofrece, principalmente la redacción y respuesta de correos. El uso de comandos internos del mail command, no lo voy a tratar aquí ya que es un tema muy extenso y no lo domino ampliamente, por lo que en ese aspecto les tocara investigar.
1 comentario:
Muy bueno martín. Rápido, práctico y funcional.
Publicar un comentario