OpenSMTPD relay setup
These days, most of us don't run a mail server to send e-mail. Instead, we deliver to a provider's mail server via SMTP.
Setting this up in OpenSMTPD is quite simple. We will assume that all of the machine's e-mail is going to be relayed through a single GMail account. A more complex situation will require a more complex setup.
This is based on the EXAMPLES section in OpenSMTPD's manual.
In general (particularly if you're using multi-factor authentication), you need to set up an »app password« for your Google account.
The 16 character password must be stored in an arbitrary file, we'll call it /etc/mail/secrets
, giving it an arbitrary »label« for which we'll use gmail
.
# touch /etc/mail/secrets
# chmod 640 /etc/mail/secrets
# chown root:_smtpd /etc/mail/secrets
# echo "gmail username:password" > /etc/mail/secrets
Next, the following line needs to be added to /etc/mail/smtpd.conf
:
table secrets file:/etc/mail/secrets
Then, the relay
action of /etc/mail/smtpd.conf
needs to be adjusted as follows.
We're using the same »label« gmail
that we used in the secrets
file.
action "relay" relay \
host smtps://gmail@smtp.gmail.com \
auth <secrets>
You should then restart smtpd.
# rcctl restart smtpd
Last, in order to provide a proper »From« line, you should add a line like the following to ~/.mailrc
:
set from="User Name <username@gmail.com>"
It's now time to send your first e-mail, preferably to yourself:
$ echo hi | mail -s test0 username@gmail.com
If it gets stuck, look at /var/log/maillog
for the error.
While your e-mail is in the queue, OpenSMTPD will automatically attempt to deliver it after every change to the configuration.
Use smtpctl show queue
and smtpctl remove
to control the mail queue.
Comments
Post a Comment