Python Gmail不接受在电子邮件程序中登录
除了使用Gmail登录外,这个程序工作得相当好。我不太确定这是Gmail的问题,还是我的程序的问题。康卡斯特、美国在线和雅虎!干得好Python Gmail不接受在电子邮件程序中登录,python,python-2.7,Python,Python 2.7,除了使用Gmail登录外,这个程序工作得相当好。我不太确定这是Gmail的问题,还是我的程序的问题。康卡斯特、美国在线和雅虎!干得好 import socket import smtplib email_provider = raw_input('Gmail, AOL, Yahoo! or Comcast? ').title() email_user = raw_input('Type in your full email username. ') email_pwd = raw_input
import socket
import smtplib
email_provider = raw_input('Gmail, AOL, Yahoo! or Comcast? ').title()
email_user = raw_input('Type in your full email username. ')
email_pwd = raw_input('Type in your email password. ')
if email_provider == 'Gmail' or 'Google':
smtpserver = smtplib.SMTP("smtp.gmail.com",587)
if email_provider == 'Aol' or 'AOL':
smtpserver = smtplib.SMTP("smtp.aol.com",587)
if email_provider == 'Yahoo' or 'Yahoo!':
smtpserver = smtplib.SMTP("smtp.mail.yahoo.com",587)
if email_provider == 'Comcast' or 'Xfinity':
smtpserver = smtplib.SMTP("smtp.comcast.net",587)
smtpserver.ehlo()
smtpserver.starttls()
smtpserver.ehlo
smtpserver.login(email_user, email_pwd)
sendto = raw_input('Email address to send message to: ')
to = sendto
CC = sendto
subj = raw_input('Subject: ')
header = 'To: ' + to + '\n' + 'From: ' + email_user + '\n' + 'Subject:' + subj +'\n'
print '\nMessage Details:'
print (header)
assignment=raw_input('Enter your message: ')
msg = header + assignment + '\n'
smtpserver.sendmail(email_user, to, msg)
print ('Your message has been sent!')
smtpserver.close()
这是一个问题:
if email_provider == 'Gmail' or 'Google':
Python在上工作。任何不是False
、None
、0
或空集合/映射的内容都将是True
从外观上看,执行链将一路下滑,直到它将您的SMTP连接凭据设置到Comcast的服务器
因此,实际上,你的第一句话是这样说的:
if email_provider == 'Gmail' or True
您希望将其更改为:
if email_provider in ('Gmail', 'Google')
然后,现实地说,这些可以重写为
elif
——在任何给定时间,这些语句中只有一个是正确的。很高兴你得到了答案。我在想这可能是另外一件事,(可能性很小),但很高兴你得到了答案