【发布时间】:2014-03-02 08:10:57
【问题描述】:
import smtplib
from email import encoders
from email.message import Message
from email.mime.audio import MIMEAudio
from email.mime.base import MIMEBase
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
msg = MIMEMultipart()
msg.attach(MIMEText(file("P:/Email/test.txt").read()))
sender = 'sender@email.com'
reciever = 'reciever@email.com'
msg = 'Hello'
# Credentials (if needed)
username = 'user'
password = 'pass'
# The actual mail send
server = smtplib.SMTP('localhost')
server.starttls()
server.login(username,password)
server.sendmail(sender, reciever, msg)
server.quit()
回溯(最近一次调用最后一次):文件“attach2.py”,第 27 行,在
server.sendmail(sender, reciever, msg) 文件“C:\Python33\lib\smtplib.py”,第 775 行,在
sendmail (code, resp) = self.data(msg) 文件“C:\Python33\lib\smtplib.py”,第 516 行,在
数据 q = _quote_periods(msg) 文件“C:\Python33\lib\smtplib.py”,第 167 行,在
quote_periods 返回 re.sub(br'(?m)^.', b'..', bindata) 文件 "C:\Python33\lib\re.py",
第 170 行,在 sub return _compile(pattern, flags).sub(repl, string, count) TypeError 中:
预期的字符串或缓冲区
为什么我会看到此错误消息。我的 python 库文件有问题吗?
【问题讨论】:
-
你应该添加一个标签来吸引更多的注意力。仅电子邮件标签的关注者就很少。
-
这是什么语言?
-
您需要添加语言标签。话虽如此,实际阅读您发布的代码。您已经声明了
msg = MIMEMultipart(),并且已经将它用作msg.attach,所以您现在显然不能在第10 行中使用msg = 'Hello'来引用它。我什至不确定这是什么语言,我可以看到那个错误。 -
我在 Python 3.3 中的代码
-
欢迎您!我已经删除了我的答案,因为您已经更新了问题并且知道它已经完全改变了。您必须了解这不是一个调试站点。在这种情况下,我建议打开不同的问题而不是编辑同一个问题。这会使回答这个特定问题的人感到困惑,并且得到的答案与该问题不再匹配。