We have a web application that is sort of like a CRM app. People can log in and manage their business with other folks. As part of that management, our application may send emails to the people being managed. The wrinkle here is that our customers like the "from" address of those emails to be their own. That way the recipient gets email from someone they know, not from a "do not reply" address at our own domain.
With many mail servers this isn't an issue, however there are a few that are bouncing those emails. Out of curiosity I had a test email sent to me and checked the headers. Here's what google apps added:
Received-SPF: softfail (google.com: best guess record for domain of transitioning email@example.com does not designate 18.104.22.168 as permitted sender) client-ip=22.214.171.124; Authentication-Results: mx.google.com; spf=softfail (google.com: best guess record for domain of transitioning firstname.lastname@example.org does not designate 126.96.36.199 as permitted sender) email@example.com
(I replaced the real "from" address with firstname.lastname@example.org)
So, while the email was delivered to me, I can certainly see why other servers might reject it. Our app isn't ever going to resolve to clientdomain.com.
What are my options here?
1) I could suggest that all "from" addresses be set to the friendly name of the client but user our own "no reply" email address. Then I could get spf and all that wired up.
2) I could suggest that the client configures spf / reverse dns to match my server's IP (this seems like a horrible option...)
What else. What are the best practices for this sort of thing?