Do not supply charset parameter to set_payload.

It eventually instructs email.message.Message to dismiss the charset specified in Content-Type and furthermore recode the payload charset according to the global mappings predefined in the module, which is totally unwanted.