-
Notifications
You must be signed in to change notification settings - Fork 123
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
transactional email only mode #283
Comments
It will already work to some extent, but the current domain configuration settings are geared towards having regular accounts that also receive email. But I consider it part of mox goals to make it easy to run your own mail server for sending transactional email. For what it's worth, I use mox to send transactional emails for https://www.gopherwatch.org. I created gopherwatch to get input on what transactional email needs, which helped design the simple webapi to send transactional emails (though regular SMTP works fine too, and that's probably the best way to keep sending email), and helped design the webhook callsbacks for delivery events (failed/succeeded). And I know of other people that use mox to send transactional email. Mox doesn't have a high-level view of statistics for number of sent/delivered/bounces like shown in the screenshot. But mox does have queue management where you can see retired messages (sent/delivered). Mox may already have enough information in its database to render a similar page. Mox doesn't have multitenancy at the moment. Will probably come in the future. But it means there is currently a single admin account that is making all the changes. You can't assign control over a domain to a user. This currently includes access to/control over the queue with messages coming from the domain. About not receiving email. A typical way to send transactional emails is to send with a "message from"-address of something like noreply@$domain. In mox, you can only send email with a certain "msgfrom"-address if the address is configured in your account. And that means you will also get replies. For me this hasn't been troublesome, but perhaps at really high volumes of email it will be. Anyway, mox could get a config option to make this possible. It's already possible to get this effect: Add $domain to mox, also add somesubdomain.$domain to mox, create an account with two addresses, one at each domain, and send messages with an smtp mail from (envelope from) address of noreply@somesubdomain.$domain, and with a msgfrom address noreply@$domain, and just don't point the MX records for $domain to mox, but only point the MX records for subdomain.$domain to mox. Some email will have to be received by the mox instance: at least DSNs for undeliverable emails. Probably also dmarc/tls reporting emails. But I may be getting into too much detail now... I'm interested in understanding exactly what you need/don't need. I can give pointers about setting up an instance. If you want to discuss more, we can also email/chat/call. |
Thanks for the reply. You've touched on most of the issues I'd imagine.... My requirements for my mastodon instance is sending the outbound messages for password resets/operational emails. These are sent from [email protected] etc. I don't receive any inbound email... and I think as mentioned, If I'm looking to offer this as a service to multiple different mastodon administrators. I could setup mox as a single domain with a mailbox for each instance ([email protected])... or as mentioned, [email protected] I'd require the admin portal to allow me to quickly spin up tenants with the username/password for their config. Figure you disable the webmail/anti-spam and any other service only required by the inbound email. finally, I'd be interesting in handling the reputation of the primary/subdomain and IPs attached to my outbound mail. |
I think you would set up a mox instance at mx1.fedimail.example. You probably want the outgoing messages to have an "message from-headers address" that end with "@$tenantdomain", e.g. For an example tenant domain pixelfed.example, you want the following email situation:
To get the above, the following dns records would be needed for each $tenantdomain:
Mox currently assumes any configured domain is for regular sending & receiving of email. Mox prints DNS records to add, and has a page to check if a domain is configured correctly. You'll have to do things slightly differently for now to get the setup described above:
For each tenant:
I wrote down a todo for mox to add a config option to a domain, to indicate it is for transactional sending only. That option should trigger showing different dns records, and doing different dns self-checks. We'll have to be a bit careful for now, not following the instruction mox provides blindly. But don't wait for the change to be done, it's already possible to set mox up for transactional email. I'll gladly help set it up and resolve any issues that may arise.
Indeed, disabling webmail is easy. You should be able to access the messages to the postmaster account, to monitor for trouble. You can also do that over IMAP. You can also enable IMAP and webmail over only over internal IPs (eg behind vpn or an ssh tunnel). Anti-spam won't kick in without messages going in, so there's nothing special to do.
Yes! This is an important topic. Mox helps in various ways. Of course you don't have full control over what other mail servers think of you. E.g. your IP could be in a "bad neighbourhood". But you should make sure your mail server behaves properly. Mox has some monitoring and protection options:
As the admin of fedimail.example, you probably want to see the percentage of successful/failed deliveries per tenant. If it gets too high, you want to start talking to the tenant. Mox could be changed to show per-account delivery rates. Mox has a per-account config option for how long to store information about outgoing deliveries. If you want long deliverability history, you would configure a longer period. Mox does not yet have any integration with "feedback loops" (based on "marked as spam"-buttons at bigmail providers). I should look into this at some point. I don't think it'll be needed any time soon. Mox does not have a spam filter for outgoing messages. The rate limit mentioned above is currently the only way to limit damage after an account compromise. Mox does not add unsubscribe links to messages (body & headers). Mox just delivers whatever is being submitted. You should get the tenants to include such links in their messages. If their messages don't have unsubscribe links, this can be held against the fedimail reputation, especially when the messages are often marked as junk (which they will likely be at some point if there's no easy way to unsubscribe). Mox does not do click tracking, or view tracking (by adding tracking pixels; as a user, I dislike tracking, as a postmaster sending automated messages, I don't need/want to know what recipients have read/clicked). Again, mox just delivers what is being submitted. If tenants want to send messages with click/view tracking links, mox doesn't have a way to stop that... You may also want to sign up at some bigmail providers for monitoring the reputation of your IPs. You'll need quite a serious volume of daily messages before they show you anything though. If you want to use a new domain, like fedimail.example, you should register it as soon as possible. Recently registered domains are treated with suspicion by some mail servers, and messages involving such domains are more likely to be marked as spam. If you register now, it may have "aged" enough for use by the time you're ready for it. |
Hello mox team,
I run a mastodon / pixelfed instance and I pay a saas provider a few coins to send our transactional emails.
I'd love to move to mox or similar to connect my fediverse instance to a email server I control.
Once the domain is trusted, I could offer the free email hosting to other fediverse email providers.
Does that fit the mox model/usecase? I have no intention of ever receiving an email from this service.
The text was updated successfully, but these errors were encountered: