私は、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() を追加したので、sendGmail() を使用した場合の例外として (530、「アクセスが拒否されました」) が常に発生します。私のYahooメソッドとは何の関係もないと確信しており、ブラウザからgmailの資格情報で正しくログインできます。
何が間違っている可能性がありますか、または Gmail がコードを介して送信することを望んでいませんか?