AWS SES over SMTP seems to ignore X-SES-CONFIGURATION-SET header

0

Hi there!

I'm trying to set-up "engagement tracking" for my account using Virtual Deliverability Manager. I'm sending from my email client to a Postfix, which injects 'X-SES-CONFIGURATION-SET' header and relays through AWS SES SMTP end-point.

What have I done so far:

  • Verified sender identity and granted Production access
  • Enabled VDM
  • Enabled "engagement tracking" in VDM
  • Enabled "override" in my Configuration Set for VDM, enabling "engagement tracking" and "optimized shared delivery"

Observations:

  • Mails are delivered just fine and seen in VDM
  • No tracking pixel (email->postfix>ses-smtp) in email
  • No 'X-SES-CONFIGURATION-SET' header (email->postfix>ses-smtp AND using 'Test email' from AWS Console ) in email
  • Other headers (i.e 'X-SES-CONFIGURATION-SED') delivered just fine
  • Double checked Configuration Set name in the injected header
  • Tracking pixel is present when delivering email using 'Test email' from AWS Console using this guide.
  • Adding {{ses:openTracker}} placeholder in the email body have no effect (not replaced by AWS with the tracking code)

Assuming correct Postfix operation (injects test header just fine) and correct header name (stripped by AWS in both test cases) and working "tracking engagement" for Configuration Set (tracking code is present if sending from AWS console) it appears that problem might reside within SMTP end-point.

Or am I doing something wrong?

Paul G
asked 2 months ago159 views
4 Answers
0

Further analyzing test results, I suspect that when sending through a Postfix, AWS SES detects that it's not the first relay in the delivery chain and skips all tracking logic. This seems to make sense, as SES do not have an idea of what the previous relays did to the message (like adding it's own tracking logic) and so decides to play safe. Can someone from SES team to confirm/disprove this?

Paul G
answered 2 months ago
  • Thank you for doing some in-depth analysis here. It would be good for you to open a case so that AWS support can triage any known-issues and relay the findings to the service team. If you have an AWS account team, I encourage you to engage with them for assistance, as well.

0

Configuration Set Name Accuracy You've mentioned double-checking the Configuration Set name. Ensure there are no typos, including any extra spaces or special characters. The name must exactly match what is configured in AWS SES.

2. Header Injection by Postfix Verify that Postfix is correctly injecting the X-SES-CONFIGURATION-SET header before relaying the email to SES. You can check this by inspecting the raw email headers before it leaves your Postfix server.

3. Header Case Sensitivity AWS SES headers are case-insensitive, but it's still good practice to use the correct casing (X-SES-CONFIGURATION-SET). Double-check that the header is exactly as expected.

4. SES SMTP Endpoint Behavior AWS SES may strip certain headers, especially if there is a misconfiguration or if the headers are incorrectly formatted. Ensure the header is injected correctly in the SMTP relay process.

5. Engagement Tracking Setup Since tracking pixels work when sending directly from the AWS Console, it suggests that the Configuration Set and VDM settings are correct. The issue might be specific to the way emails are being relayed through Postfix.

6. SMTP Authentication and Session Ensure that the SMTP session correctly authenticates with AWS SES. If there is an issue during authentication, SES might not apply the Configuration Set as expected.

7. Postfix Header Modification Check if Postfix might be modifying or stripping headers before sending them to SES. Ensure that your Postfix configuration allows for the X-SES-CONFIGURATION-SET header to pass through unchanged.

8. SES Logs and Insights Enable AWS SES sending logs (using CloudWatch) to inspect how SES is processing the emails and if it detects the X-SES-CONFIGURATION-SET header.

9. Testing with Different Clients As a test, try sending an email directly from a simple script using a library like Python's smtplib to relay through Postfix and see if the issue persists. This could help isolate whether the issue is specific to your email client or the Postfix setup.

10. AWS SES Quirks AWS SES might have specific behaviors or quirks with SMTP endpoints that are not well-documented. As a last resort, reaching out to AWS Support with your findings could help clarify if this is a known issue or if there are workarounds.

EXPERT
answered 2 months ago
0

I did few more tests with the Python script (using smtplib), and here's my findings:

  • Sending directly to SES SMTP - works (I get pixel at the destination and no header)
  • Sending via Postfix -> SES SMTP - does not works (no pixel, no header)
  • Sending via Postfix (directly to destination MX) - kinda works (I get the header, w/o the pixel of cause)

It seems there could be some interoperability issue between Postfix and SES SMTP

Paul G
answered 2 months ago
-1
Accepted Answer

Well, I guess SendGrid is the best choice in this situation

Paul G
answered a month ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions