使用 cPanel 电子邮件对 smtplib 进行故障排除 - Python3
Troubleshooting smtplib with cPanel email - Python3
我已经使用 gmail 凭据测试了以下代码,它运行良好,但是,当我尝试使用在 cPanel 中创建的电子邮件时,它不起作用。我确信凭据是正确的,并且我没有被服务器阻止,因为我的电子邮件客户端正在工作,我可以远程登录到它。
有没有办法以某种方式生成日志以查看失败的确切原因?使用打印语句我发现它在到达服务器变量时失败了。
import config
import smtplib
class EmailAlert(object):
"""Class for sending email alert from slave account"""
def __init__(self, subject, msg):
self.subject = subject
self.msg = msg
def send_email(self):
try:
server = smtplib.SMTP(config.OUTGOING_SERVER) #It fails here and goes to except
server.ehlo()
server.starttls()
server.login(config.FROM_EMAIL_ADDRESS, config.PASSWORD)
message = 'Subject: {}\n\n{}'.format(self.subject, self.msg)
server.sendmail(config.FROM_EMAIL_ADDRESS,
config.TO_EMAIL_ADDRESS,
message)
server.quit()
print("Success: Email sent!")
except:
print("Email failed to send.")
email = EmailAlert("Test", "test")
email.send_email()
我发现即使 cPanel 中显示的端口通常是 465,也可以使用端口 587。
我已经使用 gmail 凭据测试了以下代码,它运行良好,但是,当我尝试使用在 cPanel 中创建的电子邮件时,它不起作用。我确信凭据是正确的,并且我没有被服务器阻止,因为我的电子邮件客户端正在工作,我可以远程登录到它。 有没有办法以某种方式生成日志以查看失败的确切原因?使用打印语句我发现它在到达服务器变量时失败了。
import config
import smtplib
class EmailAlert(object):
"""Class for sending email alert from slave account"""
def __init__(self, subject, msg):
self.subject = subject
self.msg = msg
def send_email(self):
try:
server = smtplib.SMTP(config.OUTGOING_SERVER) #It fails here and goes to except
server.ehlo()
server.starttls()
server.login(config.FROM_EMAIL_ADDRESS, config.PASSWORD)
message = 'Subject: {}\n\n{}'.format(self.subject, self.msg)
server.sendmail(config.FROM_EMAIL_ADDRESS,
config.TO_EMAIL_ADDRESS,
message)
server.quit()
print("Success: Email sent!")
except:
print("Email failed to send.")
email = EmailAlert("Test", "test")
email.send_email()
我发现即使 cPanel 中显示的端口通常是 465,也可以使用端口 587。