Fix mail steps for multi-mode emails with both text and html

text/html content. Change url regex to be simpler and more accepting of
alternate TLDs and other oddities (we use .local tld for development
and CI)

str(mail) will return the full body of the mail, whereas with multipart
emails get_payload() can return a list of sub-messages with seperate
payloads each