gpt4 book ai didi

python - 使用 crashmail 在 superlance 中通过 smtp 发送电子邮件

转载 作者:太空狗 更新时间:2023-10-30 01:27:58 26 4
gpt4 key购买 nike

我正在尝试设置当进程在 supervisord 中更改状态时发送电子邮件通过使用 crashmail .由于默认的 sendmail 程序需要大量设置,我没有运气,所以我决定使用 Python 中的一个小脚本,该脚本使用 SMTP 发送电子邮件。

这对于第一次状态更改非常有效(我确实收到了一封电子邮件,说流程状态发生了变化)但之后停止工作。我试图在 supervisord 中更改不同的选项,例如 buffer_sizeautorestart 但它没有效果。

这是我用来触发 supervisord 状态更改的脚本:

import time

from datetime import datetime

if __name__ == '__main__':
print(">>>>> STARTING ...", flush=True)
while True:
print("sleep now:", datetime.utcnow(), flush=True)
time.sleep(30)
raise Exception("meo meo")

这是通过 Gmail 发送电子邮件的脚本。这一个将发送 stdin

#!/usr/bin/env python

import smtplib


def get_server():
smtpserver = smtplib.SMTP('smtp.gmail.com:587')
smtpserver.ehlo()
smtpserver.starttls()
smtpserver.login("user@gmail.com", "password")
return smtpserver


if __name__ == '__main__':
import sys

data = sys.stdin.read()

s = get_server()
s.sendmail('from@gmail.com', ['myemail@fitle.com'], data)
s.quit()

这是我的supervisord.conf

[eventlistener:crashmail]
command=crashmail -a -m myemail@gmail.com -s /home/ubuntu/mysendmail.py
events=PROCESS_STATE
buffer_size=102400
autorestart=true

有人知道为什么吗?谢谢!

最佳答案

我移动了 eventlistener部分到一个单独的文件中 /etc/supervisor/conf.d (而不是放在 supervisord.conf 的末尾)现在一切都按预期工作......

关于python - 使用 crashmail 在 superlance 中通过 smtp 发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35730250/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com