As for stopping the junk mail, I've managed to stop almost all of ours by simply calling the 800 phone #s on it. You have to do this several months in advance as most of the junk mail is printed up to three months in advance and already sitting on pallets to go the Post Office at the correct date.
Sometimes junk mailers don't put a phone # on their junk and you have to find it on the internet, but most mailing do have a phone #.
The only mail I haven't been able to stop is when someone like a local pizza shop has the Post Office send out their junk mail telling them to mail it to everyone in the surrounding zip code. Since there's no actual mailing list and the Post Office's computer systems are so out of date, they have no way of blocking specific addresses.
Bill