I have a solution.
No, we can’t pass a law making voting mandatory because no one does that.
Instead, let’s work with what we have: overwhelming campaign ads/begs/emails/commercials. Rather than trying to get money out of our elections, let’s leverage the disgust and frustration most of us feel every time a new email pings our box.
Here’s how: We establish — by law — a national database. When you vote, you’re given a unique code. Using the code, you log into the database and confirm your info: any and all email accounts, phone numbers, cable tv service, anything we can think of where we don’t want to hear from politicians. You click the box, and presto! the politicians are instructed to block their campaigns from contacting you.
Think about it. If you vote early, then you get to opt out for the rest of the campaign.
Turn, turn, kick, turn — yes, IT WILL WORK!
edited to add: I’m thinking the politicians will actually be in favor of this; once we’re off the table they can focus their limited resources on the people who haven’t voted yet. It’s a perfect feedback loop: we get left alone, while the politicians will ratchet up their pressure on the nonvoters to go vote. The more people who vote, the more pressure on the remaining nonvoters. TTKT—YIWW!
edited to add also too: The law should also state that voting begins as soon as the campaign does.
— — — — —
 The United States, in case you were wondering.