gpt4 book ai didi

python - Gmail 不接受电子邮件程序中的登录

转载 作者:行者123 更新时间:2023-11-28 21:55:16 25 4
gpt4 key购买 nike

除了处理使用 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 在 truthy values 上工作.任何不是 False 的东西, None , 0或者一个空的集合/映射将是 True .

从外观上看,执行链将一直下降,直到它将您的 SMTP 连接凭据设置为 Comcast 的服务器。

因此,实际上,您的第一条陈述是这样说的:

if email_provider == 'Gmail' or True

你会想把它改成这样:

if email_provider in ('Gmail', 'Google')

然后,实际上,这些可以重写为 elif - 在任何给定时间,这些陈述中只有一个是正确的。

关于python - Gmail 不接受电子邮件程序中的登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22875825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com