我正在编写一段代码,它定期从 4 个不同的帐户发送电子邮件,其中 2 个是 gmail 帐户,另外 2 个是 yahoo 帐户。当我开始编写代码时,我能够使用以下代码从两个 gmail 帐户发送所有电子邮件:
def sendGmail(self, fromaddr, toaddr, username, password,
email_body, email_subject
):
# Build the email
msg = MIMEText(email_body)
msg['Subject'] = email_subject
msg['From'] = fromaddr
msg['To'] = toaddr
try:
# The actual mail send
server = smtplib.SMTP('smtp.gmail.com:587')
server.starttls()
server.login(username,password)
server.sendmail(fromaddr, toaddr, msg.as_string())
server.quit()
print "email sent: %s" % fromaddr
except Exception as e:
print "Something went wrong when sending the email %s" % fromaddr
print e
正如我所说,这段代码运行良好,现在我添加了 sendYahoomail(),这是一种不同的方法,我总是得到 (530, 'Access denied') 作为使用 sendGmail() 的异常。我很确定这与我的 Yahoo 方法无关,我可以使用 gmail 凭据正确地从浏览器登录。
可能有什么问题,或者只是 Gmail 不希望我通过代码发送?