This guides assumes you already have domain setup in the server

  1. Go to SES Home Page in AWS
  2. Amazon SES > Configuration: Verified identities > Create identity
  3. Select Identity Type of Domain
  4. Enter your domain in my case it’s hamro.world
  5. Leave the default configuration then Create Identity
  6. After that copy the 3 CNAME record into your dns-zone of lightsail
  7. Changing DNS records take time, and continue after your domain is verified
  8. Then from the right bar, select SMTP Setting, make a note on SMTP endpoints and Click create the credentials, use default user name and select create, you will get smtp username and smtp password.
  9. SSH into your server and search for lemmy directory
  10. If you used ansible then default directory will be /srv/lemmy/your-domain/
  11. cd into that directory and edit the file lemmy.hjson with content something like this

 email: {   
    smtp_server: "email-smtp.mumbai-west-5.amazonaws.com:25"   
    smtp_from_address: "replyer@hamro.world"   
    smtp_login: "BJKAQXXGLDBZZ"  
    smtp_password: "XzSDFVSDFDF+fKxDSFDFSDFFDSq"  
    tls_type: "tls"  
 }}

then restart docker container from the same directory:

sudo docker compose restart lemmy

Normally Aws have SES sandboxed and you need to manually request to remove the sandbox. So, for the testing go to Amazon SES > Configuration: Verified identities > Create identity > Select Identity Type of Email and add your email (in which you want to test the email outgoing from noreply@your-domain.com ) then verify it.

Then create account with the same email in your lemmy-server and voila you will receive your email.