Thank you for taking the time to ask this here. Running a mail server is a task that can range from incredibly easy to incredibly frustrating. It depends on what your needs are, and what options you’re willing to consider. I’ll give an example of the two extremes:
You need to receive email and send email to your own mail servers. You could install something like iRedMail or Mailcow and be done with it.
You need to consistently send email to several major services like Google, Microsoft, Yahoo, AT&T, and Verizon. For this you need to have all of your ducks in a row. Like:
- PTR record
- Forward confirmed PTR (A record that matches hostname and PTR)
- DKIM (more optional but it helps)
- DMARC (also more on the optional side but doesn't hurt)
- Great content standards. Use mail-tester.com to help identify potential issues.
If you find yourself in the number 2 situation, you wouldn’t be wrong to consider using a mail service to handle this for you. Many great ones exist. MailChannels, SendGrid, Zoho, and SES are all examples of services that provide outbound mail solutions. If you’re set on doing all of these things yourself, then you need to consider all of the items I mentioned above. You may have to do some digging on each one if you’re not familiar with them. You can still use something like iRedMail or Mailcow to help lighten your workload by installing the software for you. Ideally you would set these up on a dedicated droplet, not a droplet that already performs another task (like website hosting).