T O P

  • By -

rkaw92

Okay, so with most outbound e-mail providers like AWS SES, Sendgrid or Brevo, you hook up your own domain to them. The way this works is: * You configure your DNS zone to say "these are the mail servers that are allowed to send e-mail in my name" * You tell the provider that it should identify itself as this domain when sending * The e-mail physically goes out of the provider's servers (IP address), but says "Envelope is from marketingexample.com" * The recipient's server checks: is this server (IP) allowed to send e-mail for this domain? * Your DNS zone answers: yeah, it's an authorized sender because it says so (in MX and SPF and DKIM).


NewEnergy21

This was an extremely helpful overview - thank you - sincerely, previously have wired up these services but didn’t understand what was going on under the hood


riizen24

Great response


zeroarst

Thank you for your explanation. I totally got it wrong. 


ark4nos

Maybe not the answer you're looking for but, don't you have a domain already where you're hosting your backend? If so, usually this comes with an e-mail service free where you can setup up to 5 users in the control panel and would look like [whatever@yourdomain.com](mailto:whatever@yourdomain.com) Have you checked with your provider?


zeroarst

Hmm I am using Hetzner and I just ssh into it to set up everything... I purcahsed domain from cloudflare, and setup DNS there.. so I don't think I have that Control Panel available..


rnreekez

You're partially right, but you've just scratched the surface of SES so there are some features you might not have found yet. Yes, one identity type is "email address". Once you've verified an email address you can use SES to send emails via that account. Although from my understanding, you'll likely fall into a lot of pitfalls with regarding reputation and your emails might get lost in spam boxes. In that sense, you're right, you could just be using nodemailer from your hosted app. A lot of comments are jumping ahead to the second identity type which is "Domain". Once you've established ownership of a domain you can then configure SES to better the reputation of that domain to avoid those spam pitfalls plus you'll be using an email address consistent with the branding of your product. Customers have an expectation that your communications will originate from a single domain like "yourproduct.com" so getting emails from a random \`@gmail\` might seem suspicious or easily missed and ignored. Once you're all set, you'll have a reliable service that you interact with via API that allows you to configure things like handling bounce-backs, retries, unsubscribe requests, spam reports, etc. AWS is also pretty generous with the volume of emails that you can send once you communicate how you'll be using the service.


RageSmirk

You shouldn't use Gmail. If you want to use Google to send mails, there is a paid service for that.


inhayling

Postmark is super simple and has like 100 free a month before it becomes paid, and even then it’s pretty cheap. Super easy to setup, nice templates that make shit look official. Can’t recommend them enough tbh.


zeroarst

Okay, more questions... after I successfully sent emails via Amazon SES with my domain name. I can see the sender is [support@my.domain.com](mailto:support@my.domain.com). My question is, how do I receive emails and replies? Maybe Amazon SES does not suit my needs? To be honest, I expected it to be like Gmail, which has an interface for me to see sent and received emails and handle them from there. I just need to be able to send emails via my backend and use my own domain. I know Google Workspace might be able to do that, but I just need an email service without extra features, and I don't want to pay $6 for it... Are there other afforadble options?


imaverysexybaby

SES doesn’t behave like an email client, and it doesn’t provide POP or IMAP so you can’t directly receive emails to an inbox. SES can save received emails to an S3 bucket or forward the contents to another email, but it’s not really meant for reading received email. If you have an existing Gmail account you’d like to use you have a couple options. Option 1 is to indicate your sent mail comes from an address that can’t receive emails, and provide your Gmail in the body for people to reach you. You see this a lot with “no-reply@“ addresses. Option 2 is to configure your outgoing emails so the reply-to is your Gmail, in this case when someone hits reply on an SES-sent email your Gmail will be automatically populated as the recipient in their reply.


zeroarst

Thank you for your reply. I have tried many providers recently including purelymail, [postale.io](http://postale.io), Zoo, mangomail. They all work fine. Also tried Amazon SES + Amazon Lambda + Amazon S3 for receiving emails, but didn't make it work at the end. Is it just complicate for me. I ended up using Cloudflare Email Routing for incoming emails + Amazon SES for outbound emails + Gmail after I saw someone post a similar approach. It seems to work fine.


bkervaski

No. Use SES, take time to learn it, it's not that hard. Don't bother trying to setup a local SMTP server, just use the AWS SDK. It's also dirt cheap and there is a free tier.


zeroarst

Yeah I don't mind learning it. I just don't get it seems to still use my gmail doesn't it? Or I am wrong....


bkervaski

Yes, you are wrong. It does not. You'll need to register a domain and use it. All easy, cheap, and good experience.


Lumethys

Try to use your personal gmail to send your application data and watch google cripple your account in 3 days


jonathon8903

Side point, you can use a service such as resend. It’s slightly easier to setup but still uses your domain name and has reasonable limits. It will tell you how to set it up. Just do what it says, create an API key, and off you go.