We're having issues with a customer's domain. They're wanting to do a mail-out with a service called Act-On, and so far all the tests seem to be getting flagged as spam.
The customer has tried sending to:
- Themselves (Office 365): Goes to junk folder.
- Gmail: Goes to junk folder.
- Our Exchange: Gets quarantined.
So it seems clear there's an issue, and I believe it is SenderID, as in our Quarantine mailbox, the NDR showed:
Received-SPF: PermError (exchange.ourdomain.com: domain of
person@customerdomain.com used an invalid SPF mechanism)
My issue is that I need assistance trying to figure out why it's giving this error. The only tool that seems to be confirming the issue is Exchange's own Test-SenderID cmdlet. Every other tool shows no issue.
According to Microsoft, and the OpenSPF docs, PermError should be some kind of syntax or formatting issue. But I can't spot one, and none of the tools I've used have hinted to one.
I've used the following SPF record, and also explicitly specified a SenderID record in case this issue is at play.
;; QUESTION SECTION:
;customerdomain.com. IN TXT
;; ANSWER SECTION:
customerdomain.com. 2335 IN TXT "spf2.0/pra include:spf.protection.outlook.com include:_spf.act-on.net -all"
customerdomain.com. 2335 IN TXT "MS=msxxxxxxxx"
customerdomain.com. 2335 IN TXT "v=spf1 include:spf.protection.outlook.com include:_spf.act-on.net -all"
What I've Tried
- Checked for the SPF vs. SenderID issue.
- Tested using this SPF Syntax checker: http://www.kitterman.com/spf/validate.html - Passes
- And this one: http://mxtoolbox.com/spf.aspx - Passes
- Used the Microsoft SenderID Wizard to compare my SPF record, and then generate the SenderID record - Seem to match, though interestingly, the wizard never seems to detect the existing records.
- As per this post I've checked both the Office 365 and Act-On SPF records I am including, and they both seem valid.
- And this: http://www.port25.com/support/authentication-center/email-verification/ - Passes
Below are details from the Port25 report - I asked for a copy of the mail-out to be sent via Act-On as it would normally, so the email is actually coming from Act-On (@b2b-mail.net):
==========================================================
Summary of Results
==========================================================
SPF check: pass
DomainKeys check: neutral
DKIM check: pass
Sender-ID check: pass
SpamAssassin check: ham
==========================================================
Details:
==========================================================
HELO hostname: mx139.b2b-mail.net
Source IP: 209.162.194.139
mail-from: delivery@b2b-mail.net
----------------------------------------------------------
SPF check details:
----------------------------------------------------------
Result: pass
ID(s) verified: smtp.mailfrom=delivery@b2b-mail.net
DNS record(s):
b2b-mail.net. SPF (no records)
b2b-mail.net. 3600 IN TXT "v=spf1 ip4:69.30.4.0/27 ip4:69.30.45.96/27 ip4:207.189.98.224/27 ip4:207.189.124.224/27 ip4:207.189.125.224/27 ip4:209.162.194.0/24 ~all"
----------------------------------------------------------
DomainKeys check details:
----------------------------------------------------------
Result: neutral (message not signed)
ID(s) verified: header.From=person@customerdomain.com
DNS record(s):