Skip to content
Signet

shopify.com

Receivers are told to reject mail that fails authentication for this domain.

Enforced

Receivers are told to reject mail that fails authentication for this domain. Keep watching aggregate reports so a new sending service does not silently start failing.

Score held up: DMARC is enforcing at p=reject, so nobody else can send as this domain. That is the hard part, and it is done. What is left below is about your own mail arriving, not about anyone spoofing you.

158 DNS queries · 515 ms

Fix these first
  1. 1
    Selector 'pm' has a malformed key
    Re-copy the public key from your provider; it is likely truncated.
  2. 2
    Selector 'google' uses a 1024-bit RSA key
    Rotate to 2048-bit at your next key rotation.
  3. 3
    Selector 'smtpapi' uses a 1024-bit RSA key
    Rotate to 2048-bit at your next key rotation.
  4. 4
    Selector 'intercom' uses a 1024-bit RSA key
    Rotate to 2048-bit at your next key rotation.

Identity ·Sending services detected

Read from your SPF includes and MX hosts, then checked for a published DKIM key.

Google WorkspaceSPF include:_spf.google.com · MX alt1.aspmx.l.google.com · MX alt2.aspmx.l.google.com · MX alt3.aspmx.l.google.com · MX alt4.aspmx.l.google.com · MX aspmx.l.google.comkey published · google
Twilio SendGridSPF include:sendgrid.netkey published · smtpapi
ZendeskSPF include:mail.zendesk.comkey published · zendesk1, zendesk2

Identity ·DMARC

v=DMARC1; p=reject; pct=100; fo=1; rua=mailto:[email protected];ruf=mailto:[email protected]
Policy
reject
Coverage
100%
Alignment
dkim=r spf=r

Identity ·DKIM

111 selectors probed

googleGoogle WorkspaceRSA 1024
smtpapiSendGridRSA 1024
zendesk1ZendeskRSA 2048
zendesk2ZendeskRSA 2048
pmPostmarkinvalid
klKlaviyoRSA 2048
kl2KlaviyoRSA 2048
intercomIntercomRSA 1024
m1MarketoRSA 1024
mlMailerLiteRSA 1024
mailGenericRSA 1024

Identity ·SPF

Worst-case evaluation across every include.

v=spf1 include:_spf.google.com include:mail.zendesk.com include:sendgrid.net ~all
DNS lookup budget4 / 10
  • include:_spf.google.com
  • include:mail.zendesk.com
  • include:sendgrid.net
  • include:ab.sendgrid.net

Findings (13)

HighSelector 'pm' has a malformed key›

Public key could not be decoded: Could not deserialize key data. The data may be in an incorrect format, it may be encrypted with an unsupported algorith

What to do

Re-copy the public key from your provider; it is likely truncated.

MediumSelector 'google' uses a 1024-bit RSA key›

1024-bit is the RFC 8301 floor, not a good target. 2048-bit is the current recommendation and is universally supported.

What to do

Rotate to 2048-bit at your next key rotation.

RFC 8301

MediumSelector 'smtpapi' uses a 1024-bit RSA key›

1024-bit is the RFC 8301 floor, not a good target. 2048-bit is the current recommendation and is universally supported.

What to do

Rotate to 2048-bit at your next key rotation.

RFC 8301

MediumSelector 'intercom' uses a 1024-bit RSA key›

1024-bit is the RFC 8301 floor, not a good target. 2048-bit is the current recommendation and is universally supported.

What to do

Rotate to 2048-bit at your next key rotation.

RFC 8301

MediumSelector 'm1' uses a 1024-bit RSA key›

1024-bit is the RFC 8301 floor, not a good target. 2048-bit is the current recommendation and is universally supported.

What to do

Rotate to 2048-bit at your next key rotation.

RFC 8301

MediumSelector 'ml' uses a 1024-bit RSA key›

1024-bit is the RFC 8301 floor, not a good target. 2048-bit is the current recommendation and is universally supported.

What to do

Rotate to 2048-bit at your next key rotation.

RFC 8301

MediumSelector 'mail' uses a 1024-bit RSA key›

1024-bit is the RFC 8301 floor, not a good target. 2048-bit is the current recommendation and is universally supported.

What to do

Rotate to 2048-bit at your next key rotation.

RFC 8301

LowNo explicit subdomain policy (sp=)›

Subdomains inherit p=, which is usually what you want. Setting 'sp=reject' explicitly protects unused subdomains even while the parent is still at p=none.

What to do

Consider adding 'sp=reject' if no subdomain sends mail.

LowSPF ends in '~all' (softfail)›

Softfail is the correct setting while you are still discovering senders, but it asks receivers to accept unauthorised mail and merely note it.

What to do

Once your aggregate reports show no unexplained legitimate sources, tighten to '-all'.

LowNo MTA-STS policy›

Without MTA-STS, mail to your domain can be downgraded to plaintext by an active network attacker, because SMTP's STARTTLS is opportunistic by default.

What to do

Publish a TXT record at _mta-sts.shopify.com and a policy file at https://mta-sts.shopify.com/.well-known/mta-sts.txt.

RFC 8461

LowNo TLS-RPT record›

Sending servers have no address to report TLS failures on mail to your domain, so transport problems stay invisible to you until someone complains.

What to do

Publish 'v=TLSRPTv1; rua=mailto:<address>' at _smtp._tls.shopify.com.

RFC 8460

LowNo CAA record›

Any certificate authority in the world may issue a certificate for this domain. A mis-issued certificate can be used to intercept mail on the wire and to impersonate your domain over HTTPS.

What to do

Publish a CAA record naming your certificate authority, for example: 0 issue "letsencrypt.org"

RFC 8659

InfoZone is not signed with DNSSEC›

This is the common case and not a misconfiguration -- most working mail domains are unsigned. It is worth knowing because your authentication records are only as trustworthy as the DNS answers carrying them, and because DNSSEC is the prerequisite for DANE.

What to do

If your DNS provider supports one-click DNSSEC, enabling it is low risk. If it does not, this is not worth changing providers over.

RFC 4033

Show 12 passing checks
PassAggregate reporting is configured›

Aggregate reports are requested at: [email protected].

PassDMARC policy is p=reject›

Mail failing authentication is rejected outright. This is the correct end state.

PassSPF lookup count is healthy (4/10)›

Worst-case evaluation stays within the limit with headroom to spare.

PassGoogle Workspace's DKIM key is published at google._domainkey›

Detected via SPF include:_spf.google.com, MX alt1.aspmx.l.google.com, MX alt2.aspmx.l.google.com, MX alt3.aspmx.l.google.com, MX alt4.aspmx.l.google.com, MX aspmx.l.google.com. A valid public key for this service is published at google._domainkey.shopify.com.

PassTwilio SendGrid's DKIM key is published at smtpapi._domainkey›

Detected via SPF include:sendgrid.net. A valid public key for this service is published at smtpapi._domainkey.shopify.com.

PassZendesk's DKIM keys are published at zendesk1._domainkey, zendesk2._domainkey›

Detected via SPF include:mail.zendesk.com. A valid public key for this service is published at zendesk1._domainkey.shopify.com, zendesk2._domainkey.shopify.com.

Pass10 DKIM key(s) published›

Found at: google, intercom, kl, kl2, m1, mail, ml, smtpapi, zendesk1, zendesk2.

PassSelector 'zendesk1' uses a 2048-bit RSA key›

Key length meets current guidance.

PassSelector 'zendesk2' uses a 2048-bit RSA key›

Key length meets current guidance.

PassSelector 'kl' uses a 2048-bit RSA key›

Key length meets current guidance.

PassSelector 'kl2' uses a 2048-bit RSA key›

Key length meets current guidance.

PassBIMI is published with a certificate reference›

The record at default._bimi.shopify.com names a logo and a Verified Mark Certificate (a=), and DMARC is enforcing, which BIMI requires. We read the record only; the logo and certificate themselves were not fetched or checked.

Transport and zone

Where your mail lands, and whether the DNS carrying your records can be trusted.

MXaspmx.l.google.com, alt3.aspmx.l.google.com, alt4.aspmx.l.google.com, alt1.aspmx.l.google.com, alt2.aspmx.l.google.com
Reverse DNSforward-confirmed on every host
MTA-STSnot published
TLS-RPTnot published
BIMIpublished
DNSSECzone not signedCommon and not a misconfiguration.
CAAno record · any CA may issue
DANEno TLSA records

This is the configuration. It is not the whole picture.

A DNS scan cannot tell you whether shopify.com’s mail actually aligns, because alignment is decided per message at the receiver. Collect DMARC aggregate reports to see every source sending as this domain.

shopify.com scores A for SPF, DKIM and DMARC · Signet