我可以发送电子邮件,但不能用smtplib和GMai回复

2024-10-06 09:27:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在制作一个程序,可以自动回复我GMail帐户上的邮件。我可以很好地发邮件,但我似乎无法回复。我正在使用smtplib。在

这是我用来发送普通邮件的代码(假设foobar@gmail.com是我的个人电子邮件):

# params contains the header data of the original email.
print smtpserver.sendmail(
    "Name Surname <foobar@gmail.com>",
    str(params["From"]),
    msg
)

这是我用来发送回复的:

^{pr2}$

前者工作正常,我可以在邮箱中看到它发送的邮件;但是,后者在堆栈跟踪中失败:

Traceback (most recent call last):
  File "imap.py", line 65, in <module>
    imapprocess(imapdata[0].split(" "))
  File "imap.py", line 55, in imapprocess
    raise e
smtplib.SMTPSenderRefused: (555, '5.5.2 Syntax error. o2sm22774327wjo.3 - gsmtp', 'Name Surname <foobar@gmail.com>')

为什么会这样?我看到了this,问题,但没有任何帮助(我试着从"Foo Bar <foobar@gmail.com>""<foobar@gmail.com>",或发送到{},但这些都没用)。在


Tags: thenameinpycomline邮件params
1条回答
网友
1楼 · 发布于 2024-10-06 09:27:01

选项不是作为参数传递的,而是由于任何原因它们实际上属于消息中。下面是一个例子:

msg = MIMEMultipart("mixed")
body = MIMEMultipart("alternative")
body.attach(MIMEText(text, "plain"))
body.attach(MIMEText("<html>" + text + "</html>", "html"))
msg.attach(body)
msg["In-Reply-To"] = params["Message-ID"]
msg["Message-ID"] = email.utils.make_msgid()
msg["References"] = params["Message-ID"]
msg["Subject"] = "Re: " + params["Subject"]
destination = msg["To"] = params["Reply-To"] or params["From"]
smtpserver.sendmail(
    "<foobar@gmail.com>",
    destination,
    msg.as_string()
)

相关问题 更多 >