Python 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

除了使用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('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
——在任何给定时间,这些语句中只有一个是正确的。

很高兴你得到了答案。我在想这可能是另外一件事,(可能性很小),但很高兴你得到了答案