One good argument I found [^1] about not exposing primary keys is that primary keys may change (during system/db change) and you want to ensure users have a consistent way of accessing data.
> Unrecognized modifiers MUST be ignored no matter where, or how often, they appear in a record. This allows implementations conforming to this document to gracefully handle records with modifiers that are defined in other specifications.
A correct SPF validator will ignore the xss modifier, not treat the SPF record as invalid.
It's not the same as what Mailgun does. Mailgun lets you send emails programmatically. Sendy/Sendwithses lets you send campaigns from an interface (using your SES).
I think a better route is getting someone to handle the marketing. As engineers, even when we know what to do in terms of marketing, we still find it hard to do because it's not something we enjoy like engineering.
I'd rather recommend using a cheaper service like Amazon SES than running your own mail server. Email deliverability is complex and figuring it out may not be worth it.
[^1]: https://softwareengineering.stackexchange.com/questions/2183...