Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save GetVladimir/f26ecf553e62a2308fc446d0e426bdea to your computer and use it in GitHub Desktop.
Save GetVladimir/f26ecf553e62a2308fc446d0e426bdea to your computer and use it in GitHub Desktop.
How to setup iCloud+ Custom Domain Catch All email with Gmail

How to setup iCloud+ Custom Domain Catch All email with Gmail

I've recently tested on how to move the custom domain catch all email from G Suite to the new iCloud+ Catch All feature and wanted to share my experience.

The end result is having Custom Domain email and Catch All routing, that can be fully used via Gmail, including receiving and sending emails.


The steps

  • Setup your Custom Domain (or subdomain) with iCloud+
  • Setup the Domain DNS settings
  • Enable Catch All email on iCloud+
  • Forwarding all email, including Catch All to Gmail
  • Adding your Custom Domain Email to Gmail for sending emails

Prerequisites

  • Standard Gmail account
  • iCloud+ subscription ($0.99)
  • Your Domain name and access to the DNS settings

Step-by-step tutorial

To begin:

  1. Go to https://wwww.icloud.com/icloudplus/ and login with your Apple ID
  2. Click on "Custom Email Domain" and select "Add a Domain you own" (you can also select this option by clicking on the dots in the top right corner of the dashboard)
  3. Choose "You and Other People" and enter your domain name (you can also use a subdomain)
  4. If you already have a main email setup with G Suite (or on any other service), add it and and select "Add Email Address". Otherwise click on "No email addresses" and skip to step 6. You'll need to manually create your email later if you skip this.
  5. Open the link that you've received on your main email to confirm it.
  6. Click on "View" on to see the DNS changes that you need to make on your Domain Name. How to make the changes vary depending on your Domain provider. Check the additonal notes below if you use a subdomain or need to send email from other services.

You can find more details on how to make the DNS changes on your Domain here: https://support.apple.com/en-us/HT212524


  1. If you already have other MX DNS records on your domain, like from G Suite, you will need to remove them and add only the iCloud MX records:
Type:
MX
Host:
@
Value:
mx01.mail.icloud.com.
Priority:
10

and

Type:
MX
Host:
@
Value:
mx02.mail.icloud.com.
Priority:
10

If you use a subdomain, make sure to replace @ with your subdomain instead.


Check the settings

  1. After you setup the DNS changes, click on "Finish Setup" to have iCloud+ check your settings. It might take a while for the changes to propagate, but it's usually a few minutes if you use any of the bigger domain providers.

You can check your if your DNS settings are correct and propagated in Terminal by using these commands (replace example.com with your domain):

dig +short sig1._domainkey.example.com
dig +short txt example.com
dig +short mx example.com

or with an online service, like https://mxtoolbox.com/spf.aspx


Enable Catch All email on your Custom Domain

  1. After the domain is added to iCloud and confirmed, go to https://www.icloud.com/icloudplus/, click on "Custom Email Domain" and select your new domain.

  2. Click on "Turn on Allow All" to enable the Catch All email feature

  3. If you haven't added a main Custom Email account on step 4, now you can go ahead and create one that will be your main address. All Catch All emails will also arrive on your iCloud email.


Forward your Custom Domain Emails to Gmail

  1. Next, go to the iCloud email on https://www.icloud.com/mail/ and click on the small Gear icon in the top left corner, above the "Mailboxes" title

  2. Under "Mail Forwarding > Forward my email to", add your Gmail address where you'd like to receive all your emails. You can also choose to keep a copy on iCloud or forward and delete the emails.

If you decide to keep a copy on iCloud, you can also set up additional forwarding rules under "Rules" and they should still work.


Connect Gmail to be able to manage and send emails from your Custom Domain

  1. Next, you'll need to create an App-Specific password on your AppleID. Go to https://appleid.apple.com/account/manage and click on App-specific passwords.

  2. Name the password Gmail or however you like and copy it for later on step 19

  3. Next, you'll need to setup to be able to send and manage all emails via Gmail if you like. Open Gmail Web App (https://mail.google.com/), click on the Gear icon on the top right corner and select "See all settings"

  4. Go to Accounts and Import and select "Add another email address".

  5. Here, enter your name and enter the Custom Domain email that you have setup on iCloud in step 4. Make sure to have "Treat as an alias" checked.

  6. For the username, enter your full AppleID username that ends with @icloud.com here (and not the custom email username or a 3rd party email associeted with your AppleID)

  7. For password, enter the App-Specific password from your AppleID that you've created on step 14.

  8. For SMTP use:

SMTP Server:	
smtp.mail.me.com

Port: 
587

Secured connection using TLS (recommended)
  1. Verify your settings and finish adding your Custom Email Address.

That's it! Now you'll have a Catch All email that you can manage with your Gmail account, and you'll also be able to send emails from your Custom Email.

Since we made the emails to be sent using the iCloud server, the recipients should only see your Custom Email, and not your gmail address.



Additional notes

If you use a subdomain instead of a main domain

If you use a subdomain instead of a domain, you will need to change @ to your subdomain. So this part:

sig1._domainkey

will need to be:

sig1._domainkey.yoursubdomain

If you plan to use other services to send emails from the same domain

If you also plan to send email using Gmail, Zendesk or other services from that same domain, you might also need to include the SPF from the specific services too.

For example, you will need to change this:

v=spf1 include:icloud.com ~all

to this:

v=spf1 include:_spf.google.com include:icloud.com ~all

And you can add as many services as need. For example:

v=spf1 include:mail.zendesk.com include:_spf.google.com include:icloud.com ~all

Add your custom domain email as alternative email, so that you can accept Google Docs with it

(Optional) You can also add your new custom email as alternative email to your Google Account on https://myaccount.google.com/alternateemail - This will allow you to receive Google Drive shares and invites to your Custom Email too, same as if they are sent to your Gmail. Your Gmail email might show in Google Drive shares though if you do this.

I hope you find this tutorial useful.



Credits

Link to the original Reddit post: https://www.reddit.com/r/gsuitelegacymigration/comments/wohcey/tutorial_how_to_setup_icloud_custom_domain_catch/

Credit for the subdomains info goes to isitjeremy and this Reddit post: https://www.reddit.com/r/iCloud/comments/s94l3b/do_icloud_custom_domains_work_with_subdomains/

Other Sources:

https://support.apple.com/en-us/HT202304

https://support.apple.com/en-ie/guide/icloud/mm0e4339d289/icloud

https://support.apple.com/en-us/HT204397

https://www.reddit.com/r/iCloud/comments/vpmqgj/catchall_email_addresses_for_custom_domains/

@GetVladimir
Copy link
Author

@BrunoX66 thank you so much for your comment and I'm glad if you found the guide useful

@jactmp
Copy link

jactmp commented Feb 23, 2024

Actually https://myaccount.google.com/alternateemail allows logging in to Google services using alternate e-mail. Alternate e-mail to use when sharing services like Google Drive or Photos can be added in different place: https://myaccount.google.com/profile/email/edit (Choose who can see your email should be set to: Anyone).

@GetVladimir
Copy link
Author

@jactmp Thank you for your comment. The link that you've mentioned seems to change and remove the existing email on the Google profile.

To be able to accept Google Drive shares, Calendar invites and similar requests using your Custom Domain, as well as your Gmail address, it seems that it needs to be added as alternate email: https://support.google.com/accounts/answer/176347

@jactmp
Copy link

jactmp commented Feb 23, 2024

Take a look at https://myaccount.google.com/email (bottom part). Descriptions are clear.

Alternate e-mail (which is exactly the place you mentioned https://myaccount.google.com/alternateemail) goal is to sign in to Google account, whereas About me Emails (which forwards to Contact info part) are used to share resources like Google Drive folders, etc.
emails

@GetVladimir
Copy link
Author

@jactmp thank you for the info. You're right, that is indeed how they are described.

However, if I remove my Custom Domain email from the alternate email, I can't seem to accept shared Google Drive invites or Calendar invites directly with the Custom Domain email.

Does it work on your side?

@jactmp
Copy link

jactmp commented Feb 23, 2024

Yes, it does. But I noticed strange behaviour. If somebody I share resource with has my primary address in its Contacts then primary email address is presented in sharing details. If my custom address is available in Contacts then my custom e-mail address is presented. A bit crazy. Fortunately nobody knows my Gmail address (e.g. doesn't have it in their address book).

BYW. Thx for this amazing knowledge! Sometimes it's necessary to use Google services to share resources (peer's pressure). It's better to do this by means of e-mail address already known to others. I was sure it's not possible until I read your article.

@GetVladimir
Copy link
Author

@jactmp thank you so much for the info and I'm glad if the tutorial was useful.

You're right, sometimes the address shown when sharing can vary. From what I've noticed also, even when they add me with my Custom Email, the info can show as shared with my original Gmail account.

The good thing is that it seems to work regardless whether they share it with your Gmail or with your Custom Domain email

@jactmp
Copy link

jactmp commented Feb 23, 2024

Actually, after some testing and changing configuration, Google Drive refuses to show custom e-mail address and shows only primary Google email. Crazy. It needs more testing and research definitely. For now it's unreliable. Google Chat also shows primary address and I can't find a way to make it use custom e-mail.
I wish Google had an option to allow external e-mails only as account identifier (as e.g. Microsoft). I don't need Gmail.

@mlangenberg
Copy link

Thank you for writing this tutorial. Since a few weeks, Gmail started to reject some emails forwarded via Cloudflare Email Routing with the error message: "Gmail has detected that this message is suspicious due to the very low reputation of the sending domain." Using this tutorial, I could quickly switch to iCloud+ and set it up to keep a copy of the forwarded email in case Gmail decides to reject them.

@GetVladimir
Copy link
Author

@mlangenberg thank you so much for your comment and I'm glad if you found the tutorial useful.

That's a good idea. I also usually keep a copy of my forwarded emails for 30 days (deleted automatically using iCloud Trash) to make sure they are all delivered correctly in the meantime

@Hom-Tanks
Copy link

@goniz20200 not a problem. The Custom Domain and your main iCloud email share the same inbox and username. They don't give you a separate inbox for the Custom Domain.
You can select from which address you're sending the email when composing it, but all emails will arrive on your main iCloud inbox.
You can then use rules and labels to sort them if needed.

Thank you!

I was able to get it to work! The username has to be the main iCloud email, not the iCloud login email (which in my case is Gmail).

Your post is a great tutorial. Thank you for your work!

Thanks for the tutorial! That was helpful in getting it solved. To echo this, I had to use the @me.com email that I had on my account in place of the username for it to finally work. Not the email I log in to my apple id (which was gmail), nor the @icloud.com email. Just in case anyone else runs into this issue too!

@GetVladimir
Copy link
Author

@Hom-Tanks thank you so much for your comment and for the heads-up on me username (which might be the first one on some accounts)

@kyvandoan
Copy link

kyvandoan commented May 27, 2024

Just chiming in to add an alternative usage of iCloud+ Custom Domain with Google Workspace.

If you don't plan to use Gmail as an email client for your iCloud custom domain address, but only rely on the rest of the Google Workspace Suite (Drive, Meet, Sheets, Docs, Slides), just sign up for to Google Workspace Essentials Starter.
It will allow you to use the Workspace apps, with 15GB free, without the Gmail part, so it can live on iCloud.

The benefit of the is to send out all the Drive related invites with your custom domain email address as sender to compensate the fact that the alternate address set up in Google cannot replace the Gmail address.

@GetVladimir
Copy link
Author

@kyvandoan thank you for your comment and for the alternative suggestion

@ryeones
Copy link

ryeones commented May 31, 2024

Hi! Had trouble with the initial set up regarding the "full appleID username" portion which was a little confusing, but looked through the rest of the comments and am glad that I managed to get it to work using the email ending with @iCloud.com (which isn't the main Apple ID I use to sign in to my iCloud --- its a gmail account) I'm now able to send and receive email via gmail using my custom domain and I'm very happy with that, as I'm more familiar with the google interface and having it to work with the rest of the apps (docs/sheets/slides etc) is a bonus!

One question though regarding the alternate email you mentioned above, have you figured out which area to add my email with the custom domain if I want others to invite me for google docs/sheets etc?

Screenshot 2024-06-01 at 1 25 21 AM

@GetVladimir
Copy link
Author

@ryeones thank you for the reply and for the info regarding using the iCloud.com username when your default is actually another email address.

I'm glad to hear that you got it working.

Regarding adding the Alternate Email on Gmail so that you can be invited to Google Docs using your custom domain, you can set it up using this direct link: https://myaccount.google.com/alternateemail

Please note that it might still show your Gmail email in Google Docs, even when invited with your custom domain email

@arielhasidim
Copy link

After successfully using it for more than a year, I'm now encountering a new error:

  1. When I'm trying to send a mail from Gmail through the custom domain, I fail with an email back "Mail Delivery Subsystem: 550 5.1.1 Mailbox does not exist."
  2. When I try to renew the connection in Gmail "Settings>Accounts and imports>Send mail as>Add another mailbox/edit info" I also get error "550 5.1.1 Mailbox does not exist , code: 550"
  3. But I still get email redirected from my custom domain at iCloud to my Gmail, with the same address I'm trying above

I already tried to re-set up with the instruction here and renew the "App-specific passwords."

Any suggestion?

@GetVladimir
Copy link
Author

@arielhasidim they recently had an iCloud Email outage and some other services were down too. It might just be another outage.

I would recommend not changing any settings for a day and to check again.

You can try sending an email directly from iCloud web if you need it in the meantime

@arielhasidim
Copy link

@GetVladimir It's going on for more than a month now :(

@GetVladimir
Copy link
Author

@arielhasidim hmm, then it doesn't sound like it's from the outage.

Are you still able to send emails from your Custom Domain directly from iCloud Mail app or iCloud Web?

@arielhasidim
Copy link

arielhasidim commented Aug 30, 2024

@GetVladimir Good questioned, I just checked and it worked from iCloud Web

@arielhasidim
Copy link

arielhasidim commented Aug 30, 2024

@GetVladimir Okay, I'm not sure what caused the sudden change at the beginning, but it turned out I didn't use the "@iCloud.com" username as you suggested in step 19.

Thank you very much. It is working correctly after resetting it properly!

@GetVladimir
Copy link
Author

@arielhasidim Awesome! Thank you for the update and glad to hear that you got it working

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment