We are developing a SaaS website application that lets users send invoices to their clients. Ideally, these e-mails should appear to be originating from our customers, so the sender e-mail address domain will not match the reverse IP entry for our server. In effect we would be forging their e-mail address, but of course with their consent.
Will that result in a higher probability of being marked as a spammer / their e-mails being marked as spam?
If yes, how bad is the penalty?
And what about people who have an e-mail address originating form an SPF-enabled domain? I guess it should be the majority of the big e-mail providers.
It will certainly increase the spam score, although by how much will depend on each filter technique and implementation. A bigger problem may be that some systems will simply reject the messages, unless each customer adds an appropriate entry into their SPF record. Without that your system may not be recognised as authorised to send messages for that domain.
Why not set the envelope sender address to an address you control (customername-invoice-bounces@yourdomain, if you like), and just set the From: line in the headers to the customer's intended sending address?
To 99% of recipients, the email appears to come from your customer, but you get to handle bounces however you please, and avoid falling foul of SPF and similar checks.
My answer would be a conditional No.
If you do not send Emails to Invalid addresses or people who do not want the emails, it is very unlikely that your emails will be considered SPAM.
If your clients are knowledgeable, ask them to add a SPF record for your IP (in addition to their current records).
You should be ok then.
As far as reverse DNS goes, most email servers only check for a valid Reverse DNS and do not compare it against From addresses.
If your email server is set up correctly, there should be little if any penalty. I have only had to manualy whitelist incorrectly configured severs.
Sender addresses frequently are different from the sending domain. I relay a domain which does not have its own servers with no penalty. SPF is appropriately set up for the domain. Prior to setting up my own server, I relayed via my ISPs servers, again with no penalty.
Alternatively, you could arrange to relay via the clients server.