我可以发送电子邮件,但不能使用 smtplib 和 GMail 回复
I can send emails, but not replies with smtplib and GMail
我正在制作一个自动回复我 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
)
这是我用来发送回复的:
print smtpserver.sendmail(
"Giul Mus <giul.mus@gmail.com>",
str(params["From"]),
msg,
{
"In-Reply-To": params["Message-ID"],
"Message-ID": email.utils.make_msgid(),
"References": params["Message-ID"],
"Subject": "Re: " + params["Subject"]
}
)
前者可以正常使用,我的邮箱可以看到它发来的邮件;但是,后者失败并显示此堆栈跟踪:
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>"
或 "<hardcoded-address@gmail.com>"
发送它,但 none这些工作)。
选项不能作为参数传递,但无论出于何种原因它们实际上属于消息。这是一个例子:
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()
)
我正在制作一个自动回复我 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
)
这是我用来发送回复的:
print smtpserver.sendmail(
"Giul Mus <giul.mus@gmail.com>",
str(params["From"]),
msg,
{
"In-Reply-To": params["Message-ID"],
"Message-ID": email.utils.make_msgid(),
"References": params["Message-ID"],
"Subject": "Re: " + params["Subject"]
}
)
前者可以正常使用,我的邮箱可以看到它发来的邮件;但是,后者失败并显示此堆栈跟踪:
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>"
或 "<hardcoded-address@gmail.com>"
发送它,但 none这些工作)。
选项不能作为参数传递,但无论出于何种原因它们实际上属于消息。这是一个例子:
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()
)