Python Email TypeError:期望的字符串或缓冲区

Zag*_*ags 0 python smtp smtplib

在一个发送电子邮件的简单示例中:

import smtplib
from email.mime.text import MIMEText

message = MIMEText("test message")
s = smtplib.SMTP('localhost')
s.sendmail("example@example.com", ["example@example.com"], message)
Run Code Online (Sandbox Code Playgroud)

我从代码的最后一行收到以下错误:

TypeError:期望的字符串或缓冲区

我究竟做错了什么?

Zag*_*ags 6

你需要传递message.as_string()给sendmail.

在示例中,它看起来像这样:

s.sendmail("example@example.com", ["example@example.com"], message.as_string())
Run Code Online (Sandbox Code Playgroud)