Open main menu

Postfix

Revision as of 20:13, 29 November 2016 by Freephile (talk | contribs) (adds log and deleting mail info)

visit www.postfix.org

Notes on using Postfix [1]. Quick and dirty procedure for setting up Postfix on a new machine that needs email.

Setting up Postfix

Add Postfix Mail Transfer Agent as satellite smarthosting through Google, install mail utilities, setup an alias for root's mail and test it all

  1.  sudo su -
    
  2.  apt-get install postfix
    
  3.  apt-get install bsd-mailx
    # or 
    apt-get install mailutils
    
  4. cat <<HERE | sudo tee /etc/postfix/main.cf > /dev/null
    # work-around for Digital Ocean's blocking of IPv6 for email
    smtp_bind_address = 0.0.0.0
    # satellite configuration
    smtp_use_tls = yes
    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
    
    HERE
    
  5.  echo "smtp.gmail.com me@example.com:PASSWORD" > /etc/postfix/sasl_passwd
    
  6.  postmap /etc/postfix/sasl_passwd
    
  7.  chmod 640 /etc/postfix/sasl_passwd*
    
  8.  chown postfix:postfix /etc/postfix/sasl_passwd*
    
  9.  /etc/init.d/postfix restart
    
  10.  echo "root: me@example.com" >> /etc/aliases && newaliases
    
  11.  echo test |mail -s "test mail sent to external" greg.rundlett@gmail.com
    
  12.  echo test |mail -s "test mail sent to root" root
    


Security

https://drownattack.com/postfix.html illustrates how to secure your Postfix installation against weak encryption.

Version

Run postconf -d | grep mail_version to find out your Postfix version.


Log

All mail activity goes to the mail log, and you can see what's going on there:

sudo tail -100 /var/log/mail.log

Delete Mail

Postfix stores mails in a queue before sending it. Sometimes you wish to remove the mails from the queue but wonder how. Postfix offers the postsuper command which can be used to delete unsent mails from the queue. Before removing the mail from the queue it is good idea to list all mails in the queue. By issuing the command:

mailq

you will list all of the mails which are queued or simply timed out for some reason.

If you want to remove a mail from the "mailq" type:

postsuper -d mailID

where mailID is the ID of the message in the mail queue.

Issuing the command:

postsuper -d ALL

will delete all queued messages from the mailq.

References

  1. loosely following the info at http://braiden.org/?p=15