[英]Choice of SMTP server to send e-mail to myself from Python for logging purposes
Python日志庫提供了一個名為“SMTPHandler”的類,它將讓我自己通過電子郵件發送日志記錄命令的輸出。 我在一些(可能是舊的)網站上找到的示例代碼下面粘貼了一些庫 。 我可以修改它以使其與gmail或我的ISP作為SMTP服務器一起使用,但兩種情況都需要我的密碼。 我目前知道兩種可能的解決方案:
我正在使用Mac,我可以通過在命令行上運行mail
,並收到電子郵件。 我不知道mail
正在做什么,但它可以從Mac Mail從中讀取它的同一個地方獲取我的SMTP服務器詳細信息,然后使用外部SMTP服務器。 我嘗試在下面的Python代碼中設置MAILHOST =“localhost”,但這不起作用。
是否有比#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()
我需要做同樣的事情。 你可以嘗試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)應該解決這個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.