I tried www.shipbymail.com but they charge ~$20 for a letter.
One friend who moved back to the US found the cheapest & easiest was to buy a supply of large envelopes & stamps, and give them to a Canadian friend, who picked up any mail for him and then mailed it to his new US address every week or so. When he got each letter, he made sure to get the sender a change-of-address. Within 2-3 months, pretty much everything except junk mail had ceased coming to his old address.
That was several years ago. Now, it might be even easier: have the Canadian friend open the mail & scan & email the contents to you. There’s very little mail where you actually need the actual paper documents enclosed. Almost always, reprinting them from the scanned copy is sufficient.