Skicka e-post via Google Apps

Det finns situationer när man behöver skicka e-post från en server via Google Apps. Vanligaste orsakerna är att port 25 är spärrad (t.ex. på ett hemmanätverk), eller att man helt enkelt har sin e-post hos Google Apps och vill att e-posten ska skickas den vägen. Det är ett bra sätt att undvika att få sina utgående e-post klassade som spam.

För att sätta upp så att Postfix skickar alla e-post via Google behöver man först ange sitt namn och lösenord som Postfix ska använda. Skapa t.ex. filen /etc/postfix/sasl/passwd och skriv in ditt namn och lösen:
gmail-smtp.l.google.com dittnamn@dindomän.se:lösenord
smtp.gmail.com dittnamn@dindomän.se:lösenord

Skapa sedan en tabell för Postfix, en s.k. hash-tabell med kommandot postmap:
postmap /etc/postfix/sasl/passwd

Nu skapas filen passad.db och se till att den endast kan läsas av användaren postfix och root:
ls -al /etc/postfix/sasl/passwd.db
-rw-r----- 1 postfix root 12288 Dec 5 22:12 passwd.db

Ta bort originalfilen /etc/postfix/sasl/passwd om du vill.

Använd standard main.cf för Postfix, men se till att de här raderna finns med:
relayhost = [smtp.gmail.com]:587
relay_transport = relay
relay_destination_concurrency_limit = 1

smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_use_tls = yes
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_tls_note_starttls_offer = yes
tls_random_source = dev:/dev/urandom

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl/passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
smtp_connection_cache_destinations = smtp.gmail.com

mailbox_size_limit = 0
recipient_delimiter = +
default_transport = smtp
default_destination_concurrency_limit = 5

Enligt relay-raderna så ska alla utgående e-post skickas via smtp.gmail.com och port 587. Det ska ske krypterat och med användaruppgifterna som finns i /etc/postfix/sasl/passwd. Anledningen till att raden som pekar ut ca-certificates.crt finns är för att kunna härleda till Googles root-certifikat.

Testa att skicka ett e-post:
$ mail xxxxx@xxxxxxx.se
Subject: test
Hej och test

Slutet av postfix-loggen ska se ut någon i stil med:
Dec 10 09:21:12 postfix/cleanup[25238]: 3F2FA3DB2A: message-id=<20121210082112.3F2FA3DB2A@testmaskin>
Dec 10 09:21:12 postfix/qmgr[6277]: 3F2FA3DB2A: from=<root@testmaskin>, size=371, nrcpt=1 (queue active)
Dec 10 09:21:14 postfix/smtp[25240]: 3F2FA3DB2A: to=<xxxxxxx@xxxxxxx.se>, relay=smtp.gmail.com[74.125.136.109]:587, delay=2.7, delays=0.13/0.03/0.64/1.9, dsn=2.0.0, status=sent (250 2.0.0 OK 1355127674 d3sm42176341eeo.13)
Dec 10 09:21:14 postfix/qmgr[6277]: 3F2FA3DB2A: removed