101 private links
Good example for generating password using different wrappers or bindings of the crypt() function
I use this to manually change password in /etc/shadow for users created only as opensmtpd users which has no shell access (/usr/sbin/nologin)
The quickest way, using python3 is:
python -c 'import crypt; print(crypt.crypt("password",crypt.METHOD_SHA512))'
Concise example to setup an opensmtpd server with virtual domains and virtual users
Had some problems with the passwd table which where solved by following this example:
http://misc.opensmtpd.narkive.com/OpKS0DRj/table-passwd-invialid-without-the-shell
The guide is a bit too simplistic but covers some topics like spf and client configuration
Blog series to install opensmtp and dovecot with filters for spam, antivirus, dkim plus roundcube webmail
A couple of details are missing like reverse DNS (test with mail-tester):
- set the droplet name as the domain you are using for the emails (eg mail.example.com) if using digitalocean
- set the same domain in /etc/mailname
Interesting example to configure opensmtpd and dovecot, with virtual users and domains stored on a shared sqlite database