Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Warning

I got things working on the server with Dickson's help.

However, that leaves some things not documented and maybe somethings not needed.

Go over this again with Roderick on a new VM.

Often application need to deliver mail. It is also useful for alerts.

 

This article outlines specifically how to use your server to send emails for server administration purposes only . Another term for this is setting up a null client.

For receiving emails and hosting we it is recommend to use a dedicated mail server or for non. Non-profits or small businesses to setup their domain name with Google should consider the using Google Apps which is free.

Install

...

Postfix

Postfix is free and open-source mail transfer agent (MTA) that routes and delivers electronic mail. It is intended as a fast, easier-to-administer, and secure alternative to the widely-used Sendmail MTA.

Code Block
languagebash
sudo apt-get install postfix

Then select the following options,

  • Internet site

For mail name enter a domain name that you actually own and that is associated with the server. In our example, krypton.com.

This value will be entered into the file /etc/mailname.

Tip

At this point programs programs on your system will be able to start sending emails.

 

Setup Mail Delivery Account

Warning

Is this really necessary?

Code Block
sudo addgroup --gid 3001 mailadmin
sudo useradd -d /home/mailadmin -m -g mailadmin -u 3001 -c "Mail Admin catch-all" -s /bin/false mailadmin

Configuring Postfix

You will be provided a command line UI to selection some options.

Please select the mail server configuration type that best meets your needs. = Internet Site

The "mail name" is the domain name used to "qualify" _ALL_ mail addresses without a domain name. = (leave default is fine)

At the end,

No Format
Postfix is now set up with a default configuration.  If you need to make changes, edit
/etc/postfix/main.cf (and others) as needed.  To view Postfix configuration
values, see postconf(1).

After modifying main.cf, be sure to run '/etc/init.d/postfix reload'.

I then modified the main.cf to add my MX record for mydestination,

Code Block
# See /usr/share/postfix/main.cf.dist for a commented, more complete version

# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache


# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = t01app
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = bonsaiframework.com, t01app, localhost.localdomain, , localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all

When time available write up more on these options, ie how I setup my MX record on my domain server to use Google's email service.

Basics of Postfix

Default installations of Postfix stores all messages in an mbox file. To see what directory it is using use the command,

Code Block
languagebash
sudo postconf mail_spool_directory
mail_spool_directory = /var/mail # This is the default directory.

The newer maildir format is now recommened so follow the next section to change to maildir.

Setup Mail Delivery Account

The overall consensus is to use the maildir format with a mail directory being used for each user.

main.cf

Backup /etc/postfix/main.cf in case something goes wrong. All the subsequent commands modify main.cf,

Code Block
sudo cp /etc/postfix/main.

...

cf /etc/postfix/main.cf.v0.0.bck

The following command will do make the following changes,

  • Set emails to the users home directory under a subfolder called Maildir.
  • The trailing slash indicating a folder, will configure Postfix to use the maildir format. Note, if you forge the slash, a file called maildir will be generated in mbox format.
Code Block
languagebash
sudo postconf -e 'home_mailbox = Maildir'
Note

This sets mail in /home/username/Maildir and the MDA (Mail Delivery Agent) must be set to the same path.

If we want multiple domains, for example, earth.com, just add it to the list by editing /etc/postfix/main.cf and adding earth.com to the mydestination line.

Warning

Look up how to do via postconf -e here for consistency.

More commands,

/'

In most cases, your system is being used to send email outbound and not receive email or deliver the emails locally to the system.

Code Block
languagebash
sudo postconf -e "inet_interfaces = loopback-only" # receive no mail from the network, and do not deliver any mail locally

 

Reverse DNS

Warning

TBC - This should explain why we would want reverse dns.

Reverse DNS unless delegated is managed by the ISP provider. Generally this means whoever manages the IP address of your server.

Setup spf Records

Warning

TBC - This section should be filled out with a general discussion of what spf is for and how to configure within Rackspace or your registrar.

Test

Here is how to send a test email.

...

Code Block
tail /var/log/mail.infolog
Jun 23 22:06:38 krypton postfix/pickup[15174]: AA67C2F824D: uid=2500 from=<tinpham>
Jun 23 22:06:38 krypton postfix/cleanup[15988]: AA67C2F824D: message-id=<20110624020638.AA67C2F824D@myra>
Jun 23 22:06:38 krypton postfix/qmgr[15175]: AA67C2F824D: from=<bhitch@krypton.com>, size=294, nrcpt=1 (queue active)
Jun 23 22:06:39 krypton postfix/smtp[15990]: AA67C2F824D: to=<bhitch@rogers.com>, relay=mx1.rog.mail.yahoo.com[98.139.214.154]:25, delay=1, delays=0.02/0.01/0.25/0.74, dsn=2.0.0, status=sent (250 ok dirdel)
Jun 23 22:06:39 krypton postfix/qmgr[15175]: AA67C2F824D: removed
Tip

If you do not see your receive your test email, try looking in your spam folder.

References

https://help.ubuntu.com/10.04/serverguide/C/postfix.html - How to setup postfix

...