Вызов smtplib.SMTP.sendmail()
не принимает параметр subject
. Обратитесь к документу за инструкциями, как его вызвать.
Строки темы вместе со всеми другими заголовками включаются как часть сообщения в формате, называемом форматом RFC822, после устаревшего документа, который первоначально определил формат. Сделайте так, чтобы ваше сообщение соответствовало этому формату, например:
import smtplib
fromx = 'xxx@gmail.com'
to = 'xxx@gmail.com'
subject = 'subject' #Line that causes trouble
msg = 'Subject:{}\n\nexample'.format(subject)
server = smtplib.SMTP('smtp.gmail.com:587')
server.starttls()
server.ehlo()
server.login('xxx@gmail.com', 'xxx')
server.sendmail(fromx, to, msg)
server.quit()
Конечно, самый простой способ согласовать ваше сообщение со всеми соответствующими стандартами - это использовать стандартную библиотеку Python email.message
, например:
import smtplib
from email.mime.text import MIMEText
fromx = 'xxx@gmail.com'
to = 'xxx@gmail.com'
msg = MIMEText('example')
msg['Subject'] = 'subject'
msg['From'] = fromx
msg['To'] = to
server = smtplib.SMTP('smtp.gmail.com:587')
server.starttls()
server.ehlo()
server.login('xxx@gmail.com', 'xxx')
server.sendmail(fromx, to, msg.as_string())
server.quit()
Другие примеры также доступны.