In regards to Preference. I find it helpful to have buckets if you will for the emails going out.
For an example you might have these options:
New and Updates, Blog, System emails, and promotions.
You should keep this in mind whenever writing an email as to make sure they get the right content. Most often times companies have these "Preference" But ignores them as it's hard to maintain control over what you're sending to who along with cross referencing it with what they want to read / get.
All in all this is something the whole department needs to keep in mind. Because if you're going to promote something. You obviously don’t want to send that to someone who just wants to get "system emails" Just like if you send out a system email you want to make sure you don’t have any promotion in it as to not take advantage of your customers trust.
All in all. Only promise what you can deliver / segment 🙂 The more options you give them the harder it is to control and validate.