One of the things that flags mail as spam is the "from" field not matching the server it came from, because it's an instant flag for lying about addresses.
Make sure that the "from" address is always from a domain name that matches the server.
For example, if your website was www.example.com, make sure your emails are from "firstname.lastname@example.org", "email@example.com". Don't use "firstname.lastname@example.org" if example2.com isn't registered to your server too.
Make sure to try and use a name of some kind with the email, eg
From: "William Meade" .