python - 如何解决“连接到 SMTP 主机时出错:[Errno 10061] 由于目标机器主动拒绝,无法建立连接”?
问题描述
我正在创建一个需要为某些特定日志发送邮件的应用程序。这是我的规则文件:
es_host: localhost
es_port: 9200
name: Log Level Test
type: frequency
index: testindexv4
num_events: 1
timeframe:
hours: 4
filter:
- term:
log_level.keyword: "ERROR"
- query:
query_string:
query: "log_level.keyword: ERROR"
alert:
- "email"
email:
- "<mailId>@gmail.com"
这是 config.yaml
rules_folder: myrules
run_every:
seconds: 2
buffer_time:
seconds: 10
es_host: localhost
es_port: 9200
writeback_index: elastalert_status
alert_time_limit:
days: 2
这是 smpt_auth.yaml
alert:
- email
email:
- "<mailId>@gmail.com"
smtp_host: "smtp.gmail.com"
smtp_port: 587
smtp_ssl: true
from_addr: "<mailId>@gmail.com"
smtp_auth_file: 'D:\ELK_Info\ElastAlert\elastalert-master\smtp_auth_user.yaml'
这是 smtp_auth_user.yaml
user: "<mailId>@gmail.com"
password: "<password>"
当我运行这个命令时:
python -m elastalert.elastalert --verbose --rule myrules\myrule.yaml
我收到一个错误:
ERROR:root: Error while running alert email: Error connecting to SMTP host: [Errno 10061] No connection could be made because the target machine actively refused it.
请问有什么办法解决这个问题吗?
解决方案
请尝试检查以下链接:
https://stackoverflow.com/a/36532619/5062759
据我了解,完全不建议使用 Gmail 发送电子邮件。它是有限制的,所以如果你是为生产服务(尤其是日志)做的,你会很快达到上限。我相信亚马逊的 SES 系统会为开发人员提供积分,因此您可以对其进行修改,或者如果您真的喜欢 Google,您可以使用:https ://cloud.google.com/appengine/docs/standard/go/mail/ 。
推荐阅读
- php - 从 php 生成的电子邮件 pdf 附件
- corda - 关于corda网络类型的cordapp示例的说明
- javascript - 选择单选按钮时获取文本字段的问题
- java - 如何在屏幕上设置“onClick”方法“setSoundEffectEnabled(false)”?
- imap - imap.seqno 如何在 nodejs 中工作?
- angular - Angular 材质树和 MatTreeFlatDataSource?
- spring - Spring & JSP:使用 spring 控制器从某些输入中获取值
- dockerfile - docker容器自动删除
- mysql - 字段 'user_id' 没有默认值 - 两个单独的控制器
- protocol-buffers - 如何在 proto3 中使用 oneof 作为类型?