使用 Python 和 IMAP/SMTP 服务器发送邮件

Send mails with Python and an IMAP/SMTP Server

我在使用自己的 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)

好的,对于我遇到的两个问题: 当我从脚本发送邮件时,我需要邮件出现在发送邮件的邮箱的 "sent items" 目录中。

我遇到的第二个问题:发送邮件时我发现了这个异常:

<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 服务器不需要身份验证。 但是程序仍然returns我是一个空异常。

代码已更新。

所以对于我遇到的两个问题,由于上面的评论,我找到了答案:

将我通过 SMTP 发送的电子邮件放入已发送目录中的正确邮箱中: https://pymotw.com/2/imaplib/ 寻找 "Uploading messages"

异常问题: 我的 SMTP 服务器上没有设置身份验证方法。