Ubuntu – How to configure Postfix to send all email through the Gmail account


I'm trying to send an email through Google from my localhost.
(via PHP5.3)

But Google keeps on blocking my requests.

I tried to follow the solutions given to a few similar questions, but for some reason they do not work.

I followed these instructions to configure it – http://www.dnsexit.com/support/mailrelay/postfix.html

Now for the config data:

  • my main.cf file looks like that:

relayhost = [smtp.gmail.com]:587
smtp_fallback_relay = [relay.google.com]
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options =

  • my sasl_passwd looks like that:

[smtp.gmail.com]:587 mygmailuser@gmail.com:password

  • and that is how the mail.log rows look like:

Dec 14 10:24:50 COMP-NAME postfix/pickup[5185]: 1C3987E0EDD: uid=33 from=

Dec 14 10:24:50 COMP-NAME postfix/cleanup[5499]: 1C3987E0EDD: message-id=<20121214082450.1C3987E0EDD@COMP-NAME.localdomain>

Dec 14 10:24:50 COMP-NAME postfix/qmgr[5186]: 1C3987E0EDD: from=, size=483, nrcpt=1 (queue active)

Dec 14 10:24:50 COMP-NAME postfix/smtp[5501]: 1C3987E0EDD: to=, relay=smtp.gmail.com[]:587, delay=0.61, delays=0.19/0/0.32/0.1, dsn=5.7.0, status=bounced (host smtp.gmail.com[] said: 530 5.7.0 Must issue a STARTTLS command first. w3sm8024250eel.17 (in reply to MAIL FROM command))

Dec 14 10:24:50 COMP-NAME postfix/cleanup[5499]: C20677E0EDE: message-id=<20121214082450.C20677E0EDE@COMP-NAME.localdomain>

Dec 14 10:24:50 COMP-NAME postfix/bounce[5502]: 1C3987E0EDD: sender non-delivery notification: C20677E0EDE

Dec 14 10:24:50 COMP-NAME postfix/qmgr[5186]: C20677E0EDE: from=<>, size=2532, nrcpt=1 (queue active)

Dec 14 10:24:50 COMP-NAME postfix/qmgr[5186]: 1C3987E0EDD: removed

Best Answer

You need to enable TLS in Postfix's SMTP client, since Google requires it. This is indicated by them in the message "Must issue a STARTTLS command".

In /etc/postfix/main.cf, you want something like this:

smtp_tls_policy_maps = hash:/etc/postfix/tls_policy

and then in /etc/postfix/tls_policy:

[smtp.gmail.com]:587 encrypt

The left hand side in tls_policy must appear exactly the same as your relayhost entry in main.cf.

Remember to run postmap on /etc/postfix/tls_policy after creating or changing it as required.

You can find more details in Postfix's TLS documentation.

Related Question