Email authentication

Using Gmail or Outlook? Your company domain can still be spoofed

An outside sender does not always need access to your account to put your address on an email.

You moved employee email to Google Workspace and enabled two-step verification. Then a supplier calls about a message from your finance team asking to change payment details. Nobody on the team sent it. It is not in Sent Items. How can this happen with a reputable email provider?

Putting your address in an email does not always require access to your account. An outside server can attempt to send directly to the supplier's mail server while claiming your address in From. The supplier's receiving system needs to check your domain's authentication records to assess that claim.

Account compromise is another possibility, so the address alone does not settle what happened. This guide follows fictional Gaon Trading, whose employees use Google Workspace with gaon.example. The company, headers, and messages below are illustrative, not records of a real incident.

First, separate the mail app from the mail service

Gaon's employees say they use Gmail. One member of the finance team reads the same company account in the Outlook app. That does not mean the company sends through both Google and Microsoft.

The app provides the screen for reading and composing messages. The service runs the systems that send and receive them. The domain is the part of the address the company owns. Outlook can connect to a Google account, so an app's name is not enough to identify the underlying sending service. Microsoft: accounts you can add to Outlook ↗

Scroll sideways to read the full table.

Gmail and Outlook can refer to different products with different responsibilities.
What you useExampleWho manages what?
Consumer email account@gmail.com or @outlook.comThe provider manages authentication for its domain. You manage account access and security.
Company-domain email@gaon.example on Google Workspace or Microsoft 365The company checks its DNS, sending services, and company-domain signing configuration.
Mail appOutlook or Gmail appIdentify the service behind the connected account. Switching apps does not automatically change domain authentication.

Gaon needs to check gaon.example, not gmail.com. Google's own domain being correctly authenticated does not establish that Gaon's custom domain and all of its sending tools are correctly configured.

Start with three facts: which service sends employee mail, where the active DNS records are managed, and which other services send using the company's address. The domain registrar and DNS host may be different companies, so the mail administrator's control panel may not show the whole arrangement.

A spoofing attempt can start outside your mail provider

An employee normally signs in to the company's chosen service. That service checks account permissions and sends the message. Strong passwords, MFA, and unusual-login detection protect this route.

  1. 01Finance employee

    Signs in to the company account and writes the message.

  2. 02Google Workspace

    Sends the message, with a gaon.example DKIM signature when configured.

  3. 03Supplier's mail server

    Checks the connecting IP, signatures, and their relationship to the From domain.

An authorized employee message travels through the company's mail service.

An outside spoofing attempt can follow a different route. The sending server supplies the From field. The internet does not first ask for Gaon's account password before allowing a server to submit a message with that address.

  1. 01Outside sender

    Places finance@gaon.example in the message's From field.

  2. 02Unrelated server

    Attempts delivery to the supplier without using a Gaon account.

  3. 03Supplier's mail server

    Consults the company's DNS authentication records and applies its own rules.

This attempt bypasses Gaon's mail service and login process entirely.

Your provider can restrict unauthorized use of its own systems, but it does not control every other sending server. An external attempt might leave no record in your provider's Sent Items or outbound logs. That is why changing a password and addressing domain spoofing solve different problems.

An empty Sent Items folder does not rule out account compromise. A message may have been deleted or sent through an application or another permission. Preserve and inspect the relevant account, application, and sending logs before drawing a conclusion.

How the receiver checks the claim

SPF compares the connecting IP with a domain's authorized senders. That domain usually comes from MAIL FROM, the transfer address used for delivery failure notices, rather than the visible From address. It is commonly shown in the received message's Return-Path. A pass for an outsider's own domain does not authenticate Gaon. The identity SPF checks ↗

DKIM verifies a digital signature. The signature's d= identifies the signing domain. A valid signature from an unrelated domain does not establish that Gaon authorized the message. The DKIM signing domain ↗

DMARC checks whether a passing SPF or DKIM domain aligns with the visible From domain. At least one method must both pass and align. If neither does, the receiver considers the company's failure policy alongside its own rules. Being able to attempt delivery is therefore quite different from being guaranteed a place in the supplier's inbox. DMARC checks and handling ↗

One passing employee message does not cover every sender

Gaon's administrator sends a test from an employee account. SPF, DKIM, and DMARC all pass. That is good evidence for that route, but the company also sends monthly invoices through a billing service and replies through a customer-support tool.

Those services may use their own servers without passing through Google Workspace. They need their own domain authentication setup, even when customers see the same company domain on every message.

Scroll sideways to read the full table.

Gaon's illustrative sender inventory. The same address domain can appear on several independent routes.
Business useVisible senderConfiguration to check
Employee mailfinance@gaon.exampleGoogle Workspace authentication and company-domain signing
Monthly invoicesbilling@gaon.exampleDomain authentication and DKIM issued by the billing provider
Support repliessupport@gaon.exampleThe support tool's sending route and domain alignment

A legitimate invoice can fail the same check as a spoofing attempt

Suppose the billing service still uses its default mailer.example.net domain. Gaon has changed the visible sender address, but has not completed the provider's domain verification process.

Before company-domain setup: a requested invoice can still fail DMARC.
From: billing@gaon.example
Return-Path: bounce@mailer.example.net
Authentication-Results: mx.partner.example;
  spf=pass smtp.mailfrom=mailer.example.net;
  dkim=pass header.d=mailer.example.net;
  dmarc=fail header.from=gaon.example

SPF and DKIM correctly authenticate the provider's domain. Neither aligns with gaon.example. The receiving system cannot see Gaon's commercial agreement with that provider; the configuration has to express the relationship.

One solution is to enable DKIM signing with the company domain in the billing service. Publish the records that service issues, activate signing, and send a new test. If the result becomes dkim=pass header.d=gaon.example, DMARC can pass through DKIM while the MAIL FROM remains unchanged. Providers may instead, or also, support a custom MAIL FROM. Check the options that your actual service offers. Microsoft: authentication and outside sending services ↗

Do not label every failure an attack or add every unfamiliar IP to SPF. Establish whether the source belongs to an approved business service. For a legitimate source, follow that provider's supported authentication process.

Check provider defaults against a received message

For Google Workspace, confirm both public-key publication and signing activation in the Admin console. Some environments may already have a working setup; inspect it before generating replacements. When choosing an RSA key, Google recommends 2,048 bits where supported. Google: DKIM setup and verification ↗

For Microsoft 365, inspect DKIM for the custom company domain and copy the CNAME targets shown for that domain in the admin interface or PowerShell. Another company's example values are not interchangeable. In either service, the final check is an externally received message with a valid signature from the intended company domain. Microsoft: DKIM for custom domains ↗

Compare the original suspicious message with a known-good one

Ask the supplier for the original message or full headers, alongside any useful screenshot. Headers contain sender identities, transfer information, and authentication results. Copying the body or forwarding the message normally may omit the evidence you need. A downloaded original or attached message preserves more of it.

In Gmail on the web, open the message, use the More menu beside Reply, and choose Show original. In new Outlook, look under the message's additional actions for View → View message details. In classic Outlook for Windows, open the message in its own window and use File → Properties → Internet headers. Labels vary by version. Gmail: viewing message headers ↗ Outlook: viewing message headers ↗

The two examples below keep only the relevant fields. Assume mx.partner.example is the supplier's trusted receiving system. Read them in order: From, the SPF and DKIM domains, then DMARC.

A. Authorized employee mail: the authenticated domains match the company.
From: "Gaon Trading Finance" <finance@gaon.example>
Return-Path: finance@gaon.example
Authentication-Results: mx.partner.example;
  spf=pass smtp.mailfrom=gaon.example;
  dkim=pass header.d=gaon.example;
  dmarc=pass header.from=gaon.example
B. An unrelated server claims the same address: two PASS results still do not authenticate Gaon.
From: "Gaon Trading Finance" <finance@gaon.example>
Return-Path: bounce@outside.example.net
Authentication-Results: mx.partner.example;
  spf=pass smtp.mailfrom=outside.example.net;
  dkim=pass header.d=outside.example.net;
  dmarc=fail header.from=gaon.example

First, inspect the full From address. It is finance@gaon.example in both examples. Expanding the sender name is useful, but even the exact address cannot distinguish these two messages.

Next, read the domain beside each pass. In A, smtp.mailfrom and header.d name Gaon's domain. In B, both name outside.example.net. Those results authenticate the outside domain, not the company shown to the reader.

Then check DMARC. These examples assume a valid policy is published, so A passes and B fails. Without an applicable policy, a receiver may report dmarc=none. That header result is different from DNS policy p=none, which asks for no quarantine or rejection because of a failure.

Finally, compare sending records. Match the time, recipient, source IP, and provider logs. A legitimate but unconfigured billing tool can resemble B. Ask other departments about infrequently used services before deciding that an unknown source is unauthorized.

Also review the company's DMARC policy and aggregate reports. If it is monitoring with p=none, resolve legitimate failures before moving toward quarantine or rejection. RUA reports summarize observed sources and results; they are not message originals or employee login records and cannot establish the full incident path on their own. DMARC aggregate reporting ↗

Choose the next action from the evidence

“It looked like it came from your company” can describe several different situations. Classify what the original message actually shows before deciding which controls to change.

Scroll sideways to read the full table.

Four possible situations. Authentication alone does not prove whether a message was malicious.
Evidence in the originalPossible explanationFirst checks
From: finance@gaon.example
DMARC fails
An outside sender used the exact domain, or a legitimate sender is misconfigured.Approved services, sending records, and domain authentication.
From: finance@ga0n.example
DMARC passes
A separate domain substitutes the number 0 for the letter o.Exact spelling, Reply-To, and link destinations.
Display name: Gaon Trading Finance
Address: sender@outside.example.net
The company name has been copied into the display name.Expanded sender address and receiver-side impersonation reporting.
From: finance@gaon.example
DMARC passes
Authorized mail, or misuse of a company account or sending tool.Business authorization, sessions, application permissions, and sending logs.

For the exact company domain, verify the sending route

If neither the employee nor an approved service sent the message, investigate unauthorized use of the domain. Correct authentication gaps and prepare an appropriate enforcement policy. Include low-volume and month-end mail in the legitimate-sender checks. Give the supplier a verified business contact and explain which message remains unconfirmed.

For a similar domain or copied name, inspect the identity itself

gaon.example and ga0n.example are different domains. Someone controlling the second can authenticate it correctly. Publishing p=reject on the first cannot prevent every message from the second. Address checking, receiver-side impersonation detection, and reporting remain necessary. What DMARC does not cover ↗

For aligned mail the supposed sender denies, investigate access

An attacker with a legitimate account or sending permission can use authorized servers and signatures. Authentication may work exactly as designed even though the payment request is fraudulent.

Preserve relevant login and sending records. Inspect unfamiliar sessions, application access, forwarding rules, and deletion rules. Where compromise is suspected, follow the provider's incident procedure to block access, revoke sessions, and reset credentials. A password reset alone can leave other permissions or rules in place. Microsoft: responding to a compromised account ↗

For a bank-account change, verify the request through a previously known phone number or contact, regardless of the authentication result. A new number supplied in the questionable message may lead back to the attacker. If a payment has already been sent, contact the financial institution promptly and preserve the message and transaction records. FBI: business email compromise ↗

Collect one original message from employee mail and one from each outside sending service. Compare their authenticated domains with their From addresses, then compare the suspicious original. That gives you a practical basis for deciding whether to repair domain authentication, investigate a misleading identity, or examine account access.

About this article

Genharden DMARC · Updated 2026-09-22. Based on the SPF, DKIM and DMARC standards and the official documentation linked above. Companies, domains, IP addresses and report figures are illustrative unless stated otherwise.

← Back to resources