先貼代碼:
from_addr = 'wisedeve@gmail.com'
password = '*******' # gmail郵箱密碼
to_addr = '18612124664@163.com'
smtp_server = 'smtp.gmail.com'
msg = MIMEText('hello,python', 'plain', 'utf-8')
msg['From'] = _fromat_addr('Python Dev <%s>' % from_addr)
msg['To'] = _fromat_addr('Admin <%s>' % to_addr)
msg['Subject'] = Header('來自SMTP的問候...', 'utf-8').encode()
server = smtplib.SMTP(smtp_server, 587) # Gmail的SMTP端口是587
server.starttls()
server.set_debuglevel(1)
server.login(from_addr, password)
server.sendmail(from_addr, [to_addr], msg.as_string())
server.quit()
在 python3 中實現用 gmail 郵箱給另一郵箱發送郵件,由于 gmail 郵箱的 SMTP 服務必須要加密傳輸,因此調用 starttls() 方法,創建安全連接。
但是運行之后卻報這樣的錯誤:
錯誤信息
smtplib.SMTPAuthenticationError: (534, b'5.7.14 <https://accounts.google.com/signin/continue?sarp=1&scc=1&plt=AKgnsbsd\n5.7.14 DXuFyTBeeat48cnZaaPpb0-4tdxV-XSxdRhw5fwA2ySJG-ja__E2MkXG-CZMWvdSfbVCf8\n5.7.14 0FSnsSFF_tKP4uYWgB-KINh5dXXB0XxM1kz4ubMZKRutAE0dbGOrIRNNKX7GjECR9nSzyw\n5.7.14 0EzedPi7akD_oDfIxr-5J7C3wR-wOjmjc2kmulQZaX853J6cWK_uIlS9XncSv-ax5earoI\n5.7.14 -ZrGV4csHa42kTrC_ixt1s7xpFF5A> Please log in via your web browser and\n5.7.14 then try again.\n5.7.14 Learn more at\n5.7.14 https://support.google.com/mail/answer/78754 197sm7140946pga.58 - gsmtp')
解決方案
根據提示去 gamil 網站找到了解決方案,因為 google 默認不允許通過不安全的應用訪問 gmail 等服務,可以去“我的帳號”中“不夠安全的應用”部分 中把 “不夠安全的應用的訪問權限” 打開即可。