使用smtplib-python不发送电子邮件 导入smtplib 发送者='den。callanan@gmail.com' 接收器=['callanden@gmail.com'] message=“”发件人:发件人 致:致人 主题:SMTP电子邮件测试 这是一封测试电子邮件。 """ 尝试: 打印(“正在尝试主机和端口…”) smtpObj=smtplib.SMTP('SMTP.gmail.com',465) 打印(“发送邮件…”) smtpObj.sendmail(发送者、接收者、消息) 打印(“成功发送电子邮件”) 除SMTPException外: 打印(“错误:无法发送电子邮件”)

使用smtplib-python不发送电子邮件 导入smtplib 发送者='den。callanan@gmail.com' 接收器=['callanden@gmail.com'] message=“”发件人:发件人 致:致人 主题:SMTP电子邮件测试 这是一封测试电子邮件。 """ 尝试: 打印(“正在尝试主机和端口…”) smtpObj=smtplib.SMTP('SMTP.gmail.com',465) 打印(“发送邮件…”) smtpObj.sendmail(发送者、接收者、消息) 打印(“成功发送电子邮件”) 除SMTPException外: 打印(“错误:无法发送电子邮件”),python,email,smtp,gmail,smtplib,Python,Email,Smtp,Gmail,Smtplib,我已经在同一台服务器(gmail)上创建了两个新的电子邮件帐户(见上文)来测试这一点。 它到达打印“正在尝试主机和端口…”的点,不再继续。所以问题应该是我输入的地址和端口号。但根据gmail邮件服务器的详细信息,我已经正确输入了它们。你知道怎么了吗 如果删除端口号或尝试其他端口号(如587),则会出现错误。和身份验证。要进行身份验证,您需要 这个脚本适合我(尽管我使用了自己的GMail电子邮件地址和特定于应用程序的密码)。在下面的代码中,用生成的密码替换特定于应用程序的密码 import smt

我已经在同一台服务器(gmail)上创建了两个新的电子邮件帐户(见上文)来测试这一点。 它到达打印“正在尝试主机和端口…”的点,不再继续。所以问题应该是我输入的地址和端口号。但根据gmail邮件服务器的详细信息,我已经正确输入了它们。你知道怎么了吗

如果删除端口号或尝试其他端口号(如587),则会出现错误。

和身份验证。要进行身份验证,您需要

这个脚本适合我(尽管我使用了自己的GMail电子邮件地址和特定于应用程序的密码)。在下面的代码中,用生成的密码替换特定于应用程序的密码

import smtplib

sender = 'den.callanan@gmail.com'
receiver = ['callanden@gmail.com']

message = """From: From Person <den.callanan@gmail.com>
To: To Person <callanden@gmail.com>
Subject: SMTP e-mail test

This is a test e-mail message.
"""

try:

    print("trying host and port...")

    smtpObj = smtplib.SMTP('smtp.gmail.com', 465)

    print("sending mail...")

    smtpObj.sendmail(sender, receiver, message)

    print("Succesfully sent email")

except SMTPException:

    print("Error: unable to send email")
导入smtplib
发送者='den。callanan@gmail.com'
接收器=['callanden@gmail.com']
message=“”发件人:发件人
致:致人
主题:SMTP电子邮件测试
这是一封测试电子邮件。
"""
尝试:
打印(“正在尝试主机和端口…”)
smtpObj=smtplib.SMTP_SSL('SMTP.gmail.com',465)
smtpObj.login(“den。callanan@gmail.com“,“特定于应用程序的密码”)
打印(“发送邮件…”)
smtpObj.sendmail(发送者、接收者、消息)
打印(“成功发送电子邮件”)
除了smtplib.SMTPException:
打印(“错误:无法发送电子邮件”)
导入回溯
traceback.print_exc()
(为了调试这个问题,我在except语句中添加了打印回溯代码。异常有关于如何让它工作的特定信息。访问端口465时,代码挂起,我想是因为TLS协商的问题,所以我不得不尝试使用端口587;然后我得到了很好的调试信息,说明了该怎么做。)


smtplib
启用诊断功能,以便您可以看到哪里出了问题。在这个细节层次上,我们所能做的就是猜测。我的猜测是Gmail需要身份验证,在这种情况下,你可以看到任何一个近乎重复的文件。
import smtplib

sender = 'den.callanan@gmail.com'
receiver = ['callanden@gmail.com']

message = """From: From Person <den.callanan@gmail.com>
To: To Person <callanden@gmail.com>
Subject: SMTP e-mail test

This is a test e-mail message.
"""

try:
    print("trying host and port...")

    smtpObj = smtplib.SMTP_SSL('smtp.gmail.com', 465)
    smtpObj.login("den.callanan@gmail.com", "APPLICATION_SPECIFIC_PASSWORD")

    print("sending mail...")

    smtpObj.sendmail(sender, receiver, message)

    print("Succesfully sent email")

except smtplib.SMTPException:
    print("Error: unable to send email")
    import traceback
    traceback.print_exc()