【发布时间】:2017-08-31 16:04:25
【问题描述】:
我在使用我自己的 SMTP/IMAP 服务器通过 Python 发送电子邮件时遇到了一些问题。 这是代码:
import sys
import imaplib
import smtplib
import email
import email.header
import datetime
smtp_session = smtplib.SMTP(mail_server)
try:
smtp_session.ehlo()
except :
err = sys.exc_info()[0]
message = """\
From: %s
To: %s
Subject: %s
%s""" % (email_from, ", ".join([email_to]), "subject", "body")
try:
smtp_session.sendmail(email_from, [email_to], message)
smtp_session.quit()
except:
err = sys.exc_info()[0]
if err != "" or err !=None:
NagiosCode = 2
NagiosMsg = "CRITICAL: Script execution failed : " + str(err)
好的,我有两个问题: 当我从脚本发送邮件时,我需要将邮件显示在发送邮件的邮箱的“已发送邮件”目录中。
我遇到的第二个问题:发送邮件时,我发现了这个异常:
<class 'smtplib.SMTPException'>
编辑:异常跟踪:
File "checkIMAP_client.py", line 153, in <module>
smtp_session.login(login, password)
File "/usr/lib64/python2.6/smtplib.py", line 559, in login
raise SMTPException("SMTP AUTH extension not supported by server.")
smtplib.SMTPException: SMTP AUTH extension not supported by server.
编辑: 看来我的 SMTP 服务器不需要身份验证。 但是程序仍然返回一个空异常。
代码已更新。
【问题讨论】:
-
除非您的 SMTP 服务器为您执行此操作,否则您需要连接到您的 IMAP 服务器并将电子邮件“存储”到您帐户的已发送文件夹中。至于您收到的即时异常-该期望还告诉您什么-应该有一个描述或错误号来指示具体问题是什么-尝试不捕获异常并让它停止程序...
-
我添加了跟踪。关于 IMAP 部分,该怎么做?顺便说一句,我可能需要用 Python 删除这些电子邮件,我在 IMAPlib python 文档中找不到如何做到这一点。
-
对于 IMAP 位 - 您已经阅读了很多 RFC 3501... - 查看 STORE 命令。
-
关于 AUTH 错误:在登录前尝试
.starttls,后跟.ehlo。通常只允许通过加密通道进行身份验证。 -
我的 SMTP 服务器上没有设置任何身份验证方法。我在我的代码中删除了关于身份验证的所有内容。感谢您的想法。
标签: python email python-2.6 smtplib imaplib