Tag Archives: Linux How to

Unix Similar multi-user operating systems based on the Linux kernel and essentially on GNU software. Like CentOS, Debian, Ubuntu Fedora.

How to Forward Mails to Gmail using Postfix

Send email using Postfix (MTA) Mail Transfer Agent via Gmail Relayhost

Emails sending with Postfix (MTA) Mail Transfer Agent via Gmail relay host. E-mails are delivered via Gmail account, the clients in the local network use Postfix as a local SMTP gateway. This tutorial shows how to do this.

In situations using like multifunctional devices, or apps that do not support authentication via Mail Submission and STARTTLS (port 587), then e-mails can send via local Postfix MTA without need to authenticate to a mail server.

If CentOS Linux is used, the required packages are installed as root.

$ yum update && yum install -y postfix mailx cyrus-sasl cyrus-sasl-plain

On a Debian and Ubuntu, the package installation is as follows.

$ apt-get update && apt-get install -y postfix mailutils

Now edit Postfix configuration by opening the file /etc/postfix/main.cf

mynetworks = 127.0.0.0/8 192.168.1.0/24
myhostname = 12.34.56.78.dynamic.yline.res.cust.isp.net
mydestination = $myhostname, localhost.$mydomain, localhost
inet_interfaces = all
inet_protocols = ipv4
relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/pki/tls/certs/ca-bundle.crt

Enter the local networks in mynetworks. As myhostname the PTR resource record that can be resolved on the Internet for determining the PTR record, hit the following command to run in a terminal, or click here.

$ curl -s ifconfig.co | xargs host
12.34.56.78.in-addr.arpa domain name pointer 12.34.56.78.dynamic.yline.res.cust.isp.net

Next, a /etc/postfix/sasl_passwd file is created with the following content.

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

Instead of myown@gmail.com use your own Gmail account, replace password with your account password.

Run postmap to create the file sasl_passwd as Berkeley DB.

postmap /etc/postfix/sasl_passwd

Hint. Run postmap after each change.

Now Postfix is restarted to activate the configuration.

systemctl restart postfix

Verify the Postfix configuration with this line in the terminal.

echo "Here is a text." | mail -v -s "Test subject" -r myown@gmail.com other@domain.com

Replace myown@gmail.com with your valid Gmail address, and for other@domain.com enter a valid recipient email.

Note. This Google Account requires disabled settings under Security – Sign in to Google – go to Security Verification and set two factor Off, and access to the Google Account when accessed by less secure apps must be On.

Postfix logging with syslog in the log file /var/log/maillog in which you can check whether the e-mail was sent and accepted by smtp.gmail.com.

tail -25 /var/log/maillog
mailq

Use mailq to check the queue for any rejected mails.

If you find authentication errors in maillog, the Google Account security settings must be checked.

Note. To help keep your account secure, from May 30, 2022, ​​Google no longer supports the use of third-party apps or devices which ask you to sign in to your Google Account using only your username and password.

status=deferred (SASL authentication failed; server smtp.gmail.com[108.177.126.108] said: 534-5.7.9 Application-specific password required. Learn more at?534 5.7.9

Note. after several sending attempts, then rejected (bounced) mails are in the queue remains, use the command mailq to show them, ran postsuper -d to remove deferred mails from queue.

postsuper -d ALL

Forward Postfix alias to dev-null

Postfix Mail Transfer Agent alias virtual

Postfix Virtual Alias do-not-reply Forwarding to /dev/null

Where “Do-Not-Reply” type e-mail addresses are in use, the mailbox should be cleaned regularly, but perhaps the mailbox should not exist. Here is a simply way for incoming e-mails to use postfix virtual alias with forwarding to null device.

The usual solution is by forwarding to /dev/null. In a local setup, this can be done in /etc/aliases.

do-not-reply: /dev/null

However, when virtual postfix domains are used, it becomes a bit more expensive. For virtual domain users, e-mail cannot be forwarded to a file. It must go to a user or an email address, for which an alias user is added in /etc/aliases.

devnull: /dev/null

After that, the new alias will be add to the aliases.db.

$ newaliases

The alias points to a Virtual Domain Alias in /etc/postfix/virtual.

do-not-reply@foo.com devnull

Note: by default, the Sendmail aliases located under /etc, for Postfix aliases is often copied under /etc/postfix, to make sure what is defined in /etc/postfix/main.cf is at alias_maps.

alias_maps = hash:/etc/aliases
or
alias_maps = hash:/etc/postfix/aliases

After that run postmap.

$ postmap /etc/postfix/virtual

and reload Postfix to activate the changes.

$ postfix reload

How do you know if the change works!

The following command can be used to verify that the alias has been set up correctly.

$ postmap -q do-not-reply@foo.com /etc/postfix/virtual

The following output should be made.

devnull

more related in this post and here