当前位置: 首页 > 知识库问答 >
问题:

无法通过python发送电子邮件(gmail)

洪弘亮
2023-03-14

我有一个代码,就像半年前一样工作。它基本上发送电子邮件。

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\u 2qGSLW9IBjP8dKKgP67bEgyKNc5ls76dnVDZcUlVQjJUQb0JX9BIVi\u Agb84vKNOKB

5.7.14fshB0ngZ_Tn8ocDpDHKavRKXmluVjHo5YM7ADKENtWn4aVTxyvaBlbXRGpA1EBh91bdV-o

5.7.14 PWIAWUXKMRQEUNSIFCV68DP4A7GHIU9YKNTYQTUEHGD4HGKTXA4JZ0MHSQDJD13UQWYB

5.7.14-YLE5SD2H5YXN8KKSAK-J\U HXMBPY7WNYECOV8LQ1AA3SPZGO

5.7.14请使用web浏览器,然后重试。

5.7.14了解更多信息

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

我确实试过

  • 登录的gmail
  • 将设备添加到受信任的设备
  • 通过gmail打开IMAP
  • 让不太安全的应用程序
  • 尝试了这个:

https://support.google.com/mail/answer/7126229?visit_id=636711453029417344-336837064

共有2个答案

蒲曦
2023-03-14

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

尝试看看这是否有效:

import yagmail
yag = yagmail.SMTP("username", "password")
yag.send(subject="hi")
缪志新
2023-03-14

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

    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()
 类似资料:
  • 我使用SendInBlue Java Api发送电子邮件,我在scala中编写了以下代码: 但我得到了这个错误:{“代码”:“失败”,“消息”:“需要有效的”至“电子邮件地址”,“数据”:[]}

  • 问题内容: 我正在使用。 使用发送电子邮件(通过)的最佳方法是什么? 问题答案: 有关使用Outlook的解决方案,请参见下面的TheoretiCAL答案。 否则,请使用python随附的smtplib。请注意,这将要求您的电子邮件帐户允许smtp,默认情况下不一定启用此功能。 编辑: 此示例使用保留域,如RFC2606中所述 为了使它真正与gmail配合使用,Doe先生需要进入gmail中的选项

  • 我已经证实了以下几点 AWS SES不在沙箱中。我可以通过控制台发送电子邮件到未经验证的电子邮件标识。 我的Lambda函数有一个角色附加了对SES和Lambda的完全访问权限(因为它最初的基本测试给了完全的权限) 下面是AWS文档中的基本代码,只是硬编码了我的电子邮件id。但我无法收到任何电子邮件。lambda代码运行成功,但我没有收到电子邮件。 附加我的云监视日志以供参考

  • 我正在尝试使用Gmail SMTP服务器从我用CodeIgniter构建的应用程序发送电子邮件,但没有成功。我使用我的Gmail帐户作为用户,但为了保密,我正在更改这里的配置。我使用了下面的代码 以下是每次出现的2个错误消息: 遇到一个PHP错误 严重性:警告 消息:mail():无法连接到位于“”的邮件服务器ssl://smtp.googlemail.com端口465,验证php.ini中的“S

  • 我使用的PHPMailer表格在这里找到。 从网站下载的示例是“接触-3”,在引导主题中使用PHPMailer通过gmail发送SMTP电子邮件。当我使用“接触-1”时,它完全适用于我的托管域电子邮件地址,但SMTP版本适用于gmail地址,联系人表单不会提交。 在下面的代码中,我更改了以下行以添加我的gmail地址和gmail密码: 任何关于使用给定信息进行此工作的帮助都将不胜感激-提前感谢!

  • 这个代码应该发送一封电子邮件到指定的地址,当我硬编码“文本” 努力编码的文本和主题,它发送罚款!注意:使用GMAIL时,您必须启用不太安全的应用程序!