Setup OpenSMTPD on OpenBSD
Basic mail setup in OpenBSD is quite straight forward.
To avoid major problems you should avoid to "relay external mail to external mail servers".
To deliver local mail externally or receive external mail to local is easy enough.
Route local externally via GMail
The guide from bsdnow.tv router project covers it.
# cat smtpd.conf
listen on lo0
table aliases db:/etc/mail/aliases.db
table secrets db:/etc/mail/secrets.db
accept for local alias <aliases> deliver to mbox
accept from local for any relay via tls+auth://gmail@smtp.gmail.com:587 auth <secrets>
# cat secrets
gmail john.doe@gmail.com:johnspassword
Make sure secrets file are secure!
chmod 640 secrets
chown root:_smtpd secrets
Receive external mail
To receive mail externally you may be a little more cautious.
I use a senders file to restrict allowed senders.
# cat senders_allowed
john.doe@gmail.com
@gmail.com
In this case I also use a different outgoing mail server using SSL (not TLS)
# cat secrets
mailprovider user:password
# cat smtpd.conf
table aliases file:/etc/mail/aliases
table secrets file:/etc/mail/secrets
table senders_allowed file:/etc/mail/senders_allowed
listen on all
accept sender <senders_allowed> for domain "lounge.se" alias <aliases> deliver to mbox
# Local mails to mbox
accept for local alias <aliases> deliver to mbox
# Local mail to external via mailprovider
accept from local for any relay via secure+auth://mailprovider@mail.mailserver.se:465 auth <secrets>
Mailgun
See mailgun for hosted mail service