= Notes on Linux PostFix email server =

 * Aliases configured in {{{
/etc/postfix/virtual
}}}
 * compile file in to *.db with postmap {{{
/usr/sbin/postmap /etc/postfix/virtual
}}}

== Setup postfix so gmail can send email through your server to use your own domain ==
 * Install sasl
   * apt install libsasl2-modules sasl2-bin

 * Tell postfix to use sasldb {{{
# cat /etc/postfix/sasl/smtpd.conf 
pwcheck_method: saslauthd
}}}

 * check that postfix uses config {{{
# postconf -d | grep 'smtpd_sasl_path'
smtpd_sasl_path = smtpd
}}}

 * Debug smtp sasl auth [[https://wiki.vigor.nz/smtp]]
 * --(add entries to /etc/postfix/sasl_passwd)--
   * --(then compile to db with # postmap sasl_passwd)--

 * Test local user/password with testsaslauthd {{{
# cat /etc/default/saslauthd
  ... MECHANISMS="sasldb
  ... OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"
# # ls -l /etc/sasldb2   <<The sasldb
# sasldblistusers2
# saslpasswd2 <user>
# testsaslauthd -u <user> -p <password> -f /var/spool/postfix/var/run/saslauthd/mux
}}}

 * Test with openssl s_client {{{
$ echo -n "<user>" | base64
$ echo -n "<password>" | base64
$ openssl s_client -connect vigor.nz:25 -starttls smtp
EHLO test.com
AUTH LOGIN
334 VXNlcm5hbWU6   >> = "Username:" in base64
<user|base64>
334 UGFzc3dvcmQ6   >> = "Password:" in base64
<pass|base64>
535 5.7.8 Error: authentication failed: authentication failure
}}}

== Configure gmail email ==
 * Log into gmail
 * Click gear top right, Settings, and then all settings
 * [Accounts and Import] -> [Add another email address]
 * Popup, complete [Name: <description>] [email: <address>], uncheck [ ][Treat as an alias] then [Next >>].
 * Complete server details 
   * SMTP Server: [smtp.vigor.nz] Port: 25
   * Username: ["<Normally email address, or smtp user>"]
   * Password: ["xxxxxxx"]
   * [x] Secure connection TLS

   * You should then receive a test email from gmail, and just click on the link or copy the code.

 * Check tls certificate on smtp server {{{
# echo "quit" | openssl s_client -starttls smtp -crlf -connect <smtp.host>:25 | openssl x509 -noout -text | grep DNS:
}}}

== Postfix mail queues ==
 * Stop mail delivery, add to main.cf {{{
defer_transports = smtp
}}}
 * monitor q with {{{
postqueue -p
}}}