【问题标题】:Can't send email (gmail) via python无法通过 python 发送电子邮件(gmail)
【发布时间】:2019-02-04 08:27:03
【问题描述】:

我有一个代码在半年前就可以使用。它基本上发送电子邮件。

import smtplib
import socket

gmail_user="SENDERMAIL"
gmail_password="SENDERPASS"
to = 'SENDTOTHIS'

email_text = "ADSADSADSA"

try:
    server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
    server.ehlo()
    server.login(gmail_user, gmail_password)
    server.starttls()
    server.sendmail(gmail_user, to, email_text)
    server.close()

    #I was using this code below and it was working. I tried above code but it also did not work.
    #server = smtplib.SMTP("smtp.gmail.com:587")
    #server.ehlo()
    #server.starttls()
    #server.ehlo()
    #server.login(gmail_user, gmail_password)
    #server.sendmail(gmail_user, to, email_text)
    #server.close()
    print("Done")
except Exception as exception:
    print(exception)

这里是例外

(534, b'5.7.14

5.7.14 KL7_2qGSLW9IBjP8dKKgP67bEgyKNc5ls76dnVDZcUlVQjJUQb0JX9BIVi_Agb84vKNOKB

5.7.14 fshB0ngZ_Tn8ocDpDHKavRKXmluVjHo5YM7ADKENtWn4aVTxyvaBlbXRGpA1EBh91bdV-o

5.7.14 pwiAWUHXKmRQEuSNSiFcv68DP4a7ghIu9YKnTyqtUEhGd4HgKtxa4Jz0mhSQDjD13UQWYB

5.7.14 -YEL5Sd2h5YxN8kkSAsK-J_hXMbpy7wNyeCov8lq1Aa3spZzgo> 请通过以下方式登录

5.7.14 您的网络浏览器,然后重试。

5.7.14 了解更多信息,请访问

5.7.14 https://support.google.com/mail/answer/78754 f132-v6sm3660398wme.24 - gsmtp')

我确实尝试过

  • 登录 gmail
  • 将设备添加到受信任的设备
  • 通过 gmail 开启 IMAP
  • let less secure apps
  • 试过这个:

https://support.google.com/mail/answer/7126229?visit_id=636711453029417344-336837064&rd=2#cantsignin

【问题讨论】:

  • 几天前我遇到了同样的问题。仔细检查以确保安全性较低的应用程序没有关闭。它对我有用。
  • 你看到他们给你的链接了吗?他们说使用完整的电子邮件地址,这与用户不同,如果您使用完整的电子邮件地址会发生什么?
  • @ltd9938 我确实再次检查并收到了关于此的电子邮件。
  • @E.Serra 实际上我确实使用了完整的电子邮件地址

标签: python gmail smtplib


【解决方案1】:

有很多方法可以解决这个问题。我希望这段代码有所帮助。 您唯一需要做的就是填写所需的变量。

    import socket
    import smtplib
    from email.mime.multipart import MIMEMultipart
    from email.mime.text import MIMEText
    # 
    message = "Your message" # Type your message
    msg = MIMEMultipart()
    password = "********" # Type your password 
    msg['From'] = "from@gmail.com" # Type your own gmail address 
    msg['To'] = "To@gmail.com" # Type your friend's mail address  
    msg['Subject'] = "title" # Type the subject of your message 
    msg.attach(MIMEText(message, 'plain'))
    server = smtplib.SMTP('smtp.gmail.com: 587')
    server.starttls()
    server.login(msg['From'], password)
    server.sendmail(msg['From'], msg['To'], msg.as_string())
    server.quit()

【讨论】:

  • 没有改变
  • 请将“print(exception)”改为 print(str(exception)),这样我们就可以看到错误字符串消息
  • 更改了问题中的输出。
  • 谢谢。我去看看
  • 我想你的问题可以这样解决:medium.com/@samarsrivastava44/…
【解决方案2】:

我还可以建议使用更简单的库(smtplib 之上的包装器,以确保不涉及其他因素)....例如yagmail(免责声明:我是开发人员)。

试试看是否可行:

import yagmail
yag = yagmail.SMTP("username", "password")
yag.send(subject="hi")

【讨论】:

  • @E141 也许其中一个例外可以提供帮助?
猜你喜欢
  • 1970-01-01
  • 2020-02-21
  • 2016-09-09
  • 2013-02-03
  • 2021-12-17
  • 2012-01-07
  • 2023-03-19
相关资源
最近更新 更多