You can use Postfix:
free and open source
support plus-addressing: in your /etc/postfix/main.cfg file, add the line recipient_delimiter = +. More generally, it supports sub-addressing (term used by the RFC 5233) aka. address tags, i.e. you can change the + with another character.
You could give Shicks! a go:
Free Gratis & Open Source
Fully RFC-compliant POP3/SMTP server for small network
Web based administration / remote access
Includes spam detection: Keyword detection, DNSBL (DNS-based blacklists for spammers), regular expression filtering.
Runs on Linux and Windows.
To avoid hitting spam triggers and issues with things like SPF the easiest thing to do is set the from to be a no-reply@ generic type thing and set the reply-to to be the email you want used when someone hits the "reply" or "reply all" button in their mail client. This of course would all be done when the headers are created for the email (however your ...
Bayesian filtering is so millenium. ;) Honestly though, over the last five years the email industry has changed so much that it's nothing like it once was. Bayesian filters used to be the norm for filtering, and now they are very lightly used to only tag the most obvious offenders that are very clearly unsolicited messages.
IP Reputation is where you ...
To send email as a user using gmail, hotmail, and most mail servers you would need to authenticate with that mail server as the user. So this means you would need to not only request the user's email address, but also their password.
If that is okay, then it can be done with any PHP mailer that allows you to specify a remote SMTP mail server, but I don't ...
I don't think you understand how some of the packages you investigated work...
postfix is pure SMTP. When it receives messages, it passes off to a mail delivery agent like dovecot. A MDA is pure IMAP/POP3, not SMTP.
You can use postfix and dovecot together in many different configurations for having virtual users (no linux account needed), storing ...
As @greg-hewgill already mentioned in the comments, the Received:-header is added by every mail server which handles a mail and places there information where and when the mail came from. For example, here're some lines (from one of my posts at serverfault):
Received: from scipy.org (unknown [184.108.40.206])
by hostname.example.net (Postfix) with ESMTP ...
GFI MailEssentials supports Outlook with
user-based filtering rules enable flexible and granular filtering of any part of the email message – including message headers, subject, body, attachment name and attachment content -- using different types of pattern-matching methods, including regular expressions.