Python SMTPAuthenticationError
直到昨天,我还没有用python发送电子邮件的问题,现在由于某种原因,我得到了以下错误Python SMTPAuthenticationError,python,smtp-auth,Python,Smtp Auth,直到昨天,我还没有用python发送电子邮件的问题,现在由于某种原因,我得到了以下错误 Traceback (most recent call last): File "main.py", line 20, in <module> mail(name) File "/home/runner/mail.py", line 26, in mail smtpserver.login(gmail_user, gmail_password) File "/usr/l
Traceback (most recent call last):
File "main.py", line 20, in <module>
mail(name)
File "/home/runner/mail.py", line 26, in mail
smtpserver.login(gmail_user, gmail_password)
File "/usr/local/lib/python3.7/smtplib.py", line 730, in login
raise last_exception
File "/usr/local/lib/python3.7/smtplib.py", line 721, in login
initial_response_ok=initial_response_ok)
File "/usr/local/lib/python3.7/smtplib.py", line 642, in auth
raise SMTPAuthenticationError(code, resp)
smtplib.SMTPAuthenticationError: (535, b'5.7.8 Username and Password not accepted. Learn more at\n5.7.8 https://support.google.com/mail/?p=BadCredentials p17sm967082ils.71 - gsmtp')
我尝试过在gmail中更改不太安全的应用程序,启用IMAP,并更改电子邮件帐户的密码。到目前为止,这个问题还没有解决。任何帮助都将不胜感激 谷歌增加了其安全策略,我邀请您阅读以下部分中的链接:不太安全的应用程序&您的谷歌帐户,并像下面的“不太安全的应用程序访问”一样打开该链接
稍后允许访问不安全的应用程序:是这是我的代码,您需要将smtp.gmail.com端口设置为587 在sendMail,我们收到了警报通知,有人进入了房间,所附的图片是身体,如果需要,我们还有附件[/home/pi/webcam.jpg] 代码:
我尝试过切换,但仍然不起作用。但您确定您使用的是相同的帐户登录吗?是否使用某些IDE来执行您的脚本?我正在使用PythonyWhere每天运行我的脚本,但一直使用repl来尝试解决此问题。我最初在repl中对整个过程进行了编码,直到昨天我才注意到它停止了工作。您可以添加所有代码吗。。使用导入..发送邮件时,端口号是smtplib.SMTP\u SSL的正确端口。我最终通过更改gmail帐户的密码解决了这个问题。
import smtplib
def mail(name):
gmail_user = 'email@gmail.com'
gmail_password = 'password'
emaillist = ['email@email.com']
for email in emaillist:
sent_from = gmail_user
to = email
subject = 'Subject'
body = "Body"
email_text = '''\
From: %s
To: %s
Subject: %s
%s
'''%(sent_from, to, subject, body)
try:
server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
server.ehlo()
server.login(gmail_user, gmail_password)
server.sendmail(sent_from, to, body)
server.close()
print('Email sent!')
except:
print('Oops!')
#!/usr/bin/env python
import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email.Utils import COMMASPACE, formatdate
from email import Encoders
import os
USERNAME = "___YOUR SMTP EMAIL HERE___"
PASSWORD = "__YOUR SMTP PASSWORD HERE___"
def sendMail(to, subject, text, files=[]):
assert type(to)==list
assert type(files)==list
msg = MIMEMultipart()
msg['From'] = USERNAME
msg['To'] = COMMASPACE.join(to)
msg['Date'] = formatdate(localtime=True)
msg['Subject'] = subject
msg.attach( MIMEText(text) )
for file in files:
part = MIMEBase('application', "octet-stream")
part.set_payload( open(file,"rb").read() )
Encoders.encode_base64(part)
part.add_header('Content-Disposition', 'attachment; filename="%s"'
% os.path.basename(file))
msg.attach(part)
server = smtplib.SMTP('smtp.gmail.com:587')
server.ehlo_or_helo_if_needed()
server.starttls()
server.ehlo_or_helo_if_needed()
server.login(USERNAME,PASSWORD)
server.sendmail(USERNAME, to, msg.as_string())
server.quit()
sendMail( ["___EMAIL TO RECEIVE THE MESSAGE__"],
"Alarm notification",
"Someone has entered the room, picture attached",
["/home/pi/webcam.jpg"] )