发送电子邮件时,ASCII编解码器无法编码字符

时间:2019-11-26 17:37:14

标签: python

我正在使用python发送电子邮件,但是在发送时收到此错误消息:

enter image description here

代码:

if Quantidade <= Minimo:
   remetente    = 'xxxxxxxxxxxxxxxxxx'
   senha        = 'xxxxxxxxx'

   destinatario = ['xxxxxxxxxxxxxxxxxxxxx', 'xxxxxxxxxxxxxxxxxxxxxx']
   assunto      = 'Stock Papelaria'
   texto        = 'O seguinte produto: {} encontra-se com a quantidade ({}) de stock igual ou inferior ao stock minimos.'.format(
        Produto, Quantidade)

   msg = '\r\n'.join([
      'From: %s' % remetente,
      'To: %s' % destinatario,
      'Subject: %s' % assunto,
      '',
      '%s' % texto
   ])

   server = smtplib.SMTP('smtp.gmail.com:587')
   server.starttls()
   server.login(remetente,senha)
   server.sendmail(remetente, destinatario, msg)
   server.quit()

我得到的错误是在文本行中,在该行中有产品和数量变量。 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

此错误通常是由于要处理的字符串值之间不一致而发生的,主要是将类型为str的变量与类型为unicode的变量混合在一起。基于Unicode HOWTO,我们必须将其正确编码为utf-8。因此Produto改为Produto.encode("utf-8")