postfix
Monitoring
To view the queue:
postqueue -p
Send
To check if the system is correctly configured to send system emails try:
mail root
mail patrick
# or...
mail patrick@kbsoftware.co.uk
Tip
Fill in the details, then Ctrl D when you finish writing the message.
Warning
You may need to add your domain if the default is something else
e.g. mail patrick@hatherleigh.info
Note
To check email from Flowable you need to set up a workflow.
Errors
Postfix writes to syslog. To extract all the postfix entries:
sudo cat /var/log/syslog | parse-log - postfix
Tip
I think all the postfix programs (eg qmngr, smtpd, etc) prefix
their program name in the log with postfix.
bounce
The bounced status appears in /var/log/syslog like this:
Nov 12 08:05:51 UKKB01A200 postfix/smtp[1646047]: 743AC171BC7:
to=<patrick.kimber@kbsoftware.co.uk>,
relay=10.3.3.3[10.3.3.3]:25, delay=0.8, delays=0.74/0.02/0.04/0, dsn=5.3.4,
status=bounced (message size 17023981 exceeds size limit 10485760 of server 10.3.3.3[10.3.3.3])
Warning
bounced message are not sent, retried or notified to the
administrator.
We would like to be notified. See ticket 5908 for info.
Configuration
Application (Django / Flowable)
To use postfix installed using our Salt states (as detailed below):
Use TLS False / No
Host localhost
Port 25
pillar
Tip
Check existing sites for mail_server configuration.
The SMTP server details are stored in the site file
(server_meta, mail_server).
Add the following to the sites pillar e.g. sites/kb101.sls:
server_meta:
mail_server:
smtp_relay_host: smtp.sparkpostmail.com
smtp_relay_port: 587
smtp_username: SMTP_Injection
smtp_password: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
admin_email: patrick@kbsoftware.co.uk
message_size_limit: 25000000
sender_rules:
/.*@kbsoftware.co.uk/: patrick@kbsoftware.co.uk
admin_emailis the address used for issues with the server etc.message_size_limitis the maximal size in bytes and is an optional parameter. The default size limit is 10240000 bytes.sender_rulesis the from address. This address will be used for sending all the emails. This is useful for Office 365 SMTP servers, because all email must be sent from a specific domain. (I think the regular expression,/.*/:, matches all emails).
Tip
If using SparkPost, then you will need to configure the Domains
To check the message_size_limit has been changed:
postconf | grep size_limit
Linux
The main configuration file is /etc/postfix/main.cf. It includes the
following:
/etc/aliases, where mail to root should go.smtp_generic_maps, a catch all (for/etc/aliases)sender_canonical_maps, is used to change the from address.relayhostinstructs Postfix to forward everything.If using SparkPost (see mail for more information), authentication details will be added to
/etc/postfix/main.cf.
Maintenance
Warning
Think carefully before running the following command…
Delete all messages in the queue:
postsuper -d ALL
Questions
Are these error messages?:
match_list_match: permit_mynetworks: no match
Testing
Remove the smtp_relay_host from the pillar and apply the Salt states e.g:
server_meta:
mail_server:
smtp_relay_host:
smtp_relay_port: 25
smtp_tls_security_level: may
Tip
I removed smtp_relay_host, smtp_relay_port and
smtp_tls_security_level and it all seems to be working nicely.
For more information, see Make sure we don’t send emails for test servers…