gmail+fetchmail

18 de febrero de 2008

Para que fetchmail recoja el correo de una cuenta de correo de GMail necesitamos dos cosas: primero que la cuenta tenga activado el acceso por POP y luego que en el servidor estén cargados los certificados SSL para GMail y configurado correctamente el .fetchmailrc.

Lo primero que haremos es activar el servicio de POP para que desde fuera se pueda descargar el correo. Desde el webmail de GMail vamos a "Configuración->Reenvío y descarga POP/IMAP->Descarga correo POP" y seleccionamos la opción "Habilitar POP para todos los mensajes".

Dado que GMail solo acepta conexiones seguras SSL por el puerto 995 necesitaremos que el servidor tenga cargado los certificados necesarios.

# mkdir /root/.certs
# echo bye openssl s_client -connect pop.gmail.com:995 -showcerts sed -n '/BEGIN/,/END/p' > /root/.certs/gmail.pem
# cat <<eof > /root/.certs/equifax.pem
-----BEGIN CERTIFICATE-----
MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV
UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy
dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1
MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx
dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B
AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f
BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A
cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC
AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ
MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm
aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw
ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj
IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF
MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA
A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y
7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh
1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4
-----END CERTIFICATE-----
eof
# cacertdir_rehash /root/.certs
# echo bye openssl s_client -connect pop.gmail.com:995 -CApath /root/.certs 2> /dev/null grep Verify


Ahora que ya tenemos los certificados guardados, podemos configurar el archivo /root/.fechmailrc con:

set spambounce
poll pop.gmail.com
proto pop3
no dns
localdomains
midominio.com
user "midominio@gmail.com"
pass "mipass"
ssl sslcertck
sslcertpath "/root/.certs"
is *
fetchall

Por ultimo podemos lanzar el modo debugger (consultar el log) el fetchmail con "fechmail -F -v -d 3600" o en modo normal sin el parámetro -v para que recoja el correo cada hora.
Más información aqui.