Python日志库提供了一个名为" SMTPHandler"的类。这将让我自己通过电子邮件发送日志记录命令的输出。我在a (possibly old) website for the library上找到的一些示例代码下面贴了一些。我可以修改它以使其与gmail或我的ISP作为SMTP服务器一起使用,但两种情况都需要我的密码。我目前知道两种可能的解决方案:
我正在使用Mac,我可以通过在命令行上运行mail
来发送电子邮件,并收到电子邮件。我不知道mail
正在做什么,但它可以从Mac Mail从中读取它的同一个地方获取我的SMTP服务器详细信息,然后使用外部SMTP服务器。我尝试设置MAILHOST =" localhost"在下面的Python代码中并且没有用。
是否有比#1或#2更好的方式将这些电子邮件发送到我的Gmail地址?
import logging, logging.handlers
MAILHOST = 'beta'
FROM = 'log_test5@yourdomain.com'
TO = ['arkadi_renko']
SUBJECT = 'Test Logging email from Python logging module (non-buffering)'
def main():
log = logging.getLogger("")
log.setLevel(logging.DEBUG)
hdlr = logging.handlers.SMTPHandler(MAILHOST, FROM, TO, SUBJECT)
hdlr.setFormatter(logging.Formatter("%(asctime)s %(levelname)-5s %(message)s"))
log.addHandler(hdlr)
log.info("Test email contents")
log.removeHandler(hdlr)
if __name__ == "__main__":
main()
答案 0 :(得分:2)
我需要做同样的事情。您可以尝试smtplib。像
这样的东西import smtplib
from email.mime.text import MIMEText
msg = MIMEText('YOUR_MESSAGE_BODY')
me = 'YOUR_SOURCE@EMAIL.COM'
you = 'YOUR_TARGET@EMAIL.COM'
msg['Subject'] = 'YOUR_MESSAGE_SUBJECT'
msg['From'] = me
msg['To'] = you
s = smtplib.SMTP('localhost')
s.sendmail(me, [you], msg.as_string())
s.quit()
不涉及密码。
如果您遇到
等错误...
error: [Errno 61] Connection refused
这可能意味着您没有在Mac上安装或启用smtp服务器,安装postfix
(例如来自macports)应该解决这个问题。