However, they need some modifications if they don't want to piss off their users in implementing it.
Here's my suggestion(s):
Let users specify how much it should cost to contact them, and let them keep a percentage of every dollar over $1. Then let marketing messengers set a 'maximum cost' amount - if it's too costly, they won't send.
Don't want to be messaged? Set your price insanely high.
Don't mind being messaged as long as you get something out of it? Set it to $2-$5.
Win for everyone.