无法使用python发送电子邮件

时间:2019-08-08 12:08:33

标签: python python-3.x smtplib

我正在运行Buster,并使用SMTP从命令行发送电子邮件,并且效果很好。

当我尝试使用Python发送电子邮件时,它失败了,我从网上尝试了各种python示例,例如

# Sending Email Alerts via Zoho
#
#
import smtplib

server = smtplib.SMTP_SSL('smtp.zoho.com',port=465) #server for sending the email

server.ehlo() # simple starting of the connection
server.login('test_email@zoho.com','pwd_12345') # login credentials and password

msg = """From:test_email@zoho.com
Subject: Test Email \n
To: recipient_email@gmail.com \n"""
# This is where the email content goes. It could be information about the error, time of day, where in the script, etc.

server.sendmail('test_email@zoho.com','recipient_email@gmail.com',msg) # this is where the email is sent to the recipient

server.quit() # exit the connection

..但是很不幸,我总是遇到以下错误:

Traceback (most recent call last):
  File "/usr/lib/python3.7/smtplib.py", line 387, in getreply
    line = self.file.readline(_MAXLINE + 1)
  File "/usr/lib/python3.7/socket.py", line 589, in readinto
    return self._sock.recv_into(b)
ConnectionResetError: [Errno 104] Connection reset by peer

作为新手,任何提示将不胜感激。

谢谢!

2 个答案:

答案 0 :(得分:1)

这可能是服务器/防火墙配置问题,而不是编程问题。您需要验证是否可以通过同一服务器通过其他方式从同一设备将电子邮件发送到同一目的地。

答案 1 :(得分:0)

此问题已解决!

我的ISP在端口465上使用SSL,而我的命令行电子邮件客户端MSMTP在使用该端口时效果很好。

由于我非常拼命,所以我开始玩耍,只使用端口25和“宾果”,电子邮件通知现在可以正常工作了,有趣的是,我的ISP建议使用端口465。