Email Infrastructure
How Email Delivery Actually Works
The Journey of One Email
When you click Send Campaign in AcelleMail, a chain of events fires before the email reaches the inbox.
Step 1: The Queue
AcelleMail adds each recipient to a Laravel queue. Queue workers pick up jobs and hand them to your configured SMTP server (or local MTA like Postfix).
Step 2: DNS MX Lookup
Your MTA needs to find where to deliver the message. It queries DNS for the recipient domain's MX records:
dig MX gmail.com
# Returns: gmail-smtp-in.l.google.com (priority 5)
The MX record points to Google's receiving server.
Step 3: The SMTP Conversation
Your server opens a TCP connection on port 25 (or 587/465) to Google's server:
→ EHLO mail.yourdomain.com
← 250 mx.google.com at your service
→ MAIL FROM: <bounce@yourdomain.com>
← 250 OK
→ RCPT TO: <user@gmail.com>
← 250 OK
→ DATA
→ [email headers + body]
→ .
← 250 Message accepted
→ QUIT
Step 4: TLS Negotiation
Modern servers require STARTTLS or connect over port 465 (SMTPS). This encrypts the SMTP conversation, preventing eavesdropping in transit.
Step 5: Authentication Checks
The receiving server runs three checks:
- SPF — is the sending IP authorized by the From domain's SPF record?
- DKIM — is the DKIM signature in the headers valid?
- DMARC — do SPF and/or DKIM align with the From header domain?
All three must pass for the best inbox placement.