Я получаю AttributeError при отправке электронной почты с Python - PullRequest
0 голосов
/ 23 февраля 2020

Я пытаюсь отправить электронное письмо с Python. Но у меня ошибка. Это мой код:

import smtplib


def sendmail(subject, body):
    smtp = smtplib.SMTP("smtp.gmail.com", 587)
    smtp.ehlo()
    smtp.starttls()
    smtp.login("....@gmail.com", PASSWORD)
    message_body = f"Subject:{subject}\n\n{body}"
    smtp.sendmail("...@gmail.com", "....@gmail.com", message_body)
    smtp.quit()

sendmail("test subject", "test body")

Однако я получаю следующую ошибку: AttributeError: у объекта 'int' нет атрибута 'encode'

Ответы [ 2 ]

0 голосов
/ 23 февраля 2020

из документации

msg может быть строкой, содержащей символы в диапазоне ASCII, или байтовой строкой. Строка кодируется в байтах с использованием кода ascii c, а одиночные символы \ r и \ n преобразуются в символы \ r \ n. Строка байтов не изменяется.

  smtp.sendmail(sender, recipient, str(message_body))
0 голосов
/ 23 февраля 2020

Попробуйте это:

smtp.sendmail(sender, recipient, message_body.as_string())
...