Я борюсь со своим скриптом на Python, интегрированным с API эластичного поиска.Я правильно использую все импортированные библиотеки.но проблема в том, что после запуска сценария.Почта не доставляется
- Включены сторонние приложения (Менее безопасные приложения)
- Используется пароль приложения
Я выключил firewalld и сбросил таблицы ip, и вызов с помощью Curl выполнен успешно.
Ниже сценария можно увидеть:
#!/usr/bin/python2.7
#-*- coding: utf-8 -*-
elastichost = 'http://10.204.11.13:1337'
elkindex = '*'
import elasticsearch
import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
import pyblake2
#import os
#echo '{"hashes": ["test"]}' > syslog.db
import pickledb
db = pickledb.load('syslog.db', True)
def email_user(email, subject, msgs):
fromm = 'redacted <redacted@gmail.com>'
server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
msg = MIMEMultipart()
msg['From'] = fromm
msg['To'] = "redacted@gmail.com"
msg['Subject'] = "log"
msg.attach(MIMEText(msgs))
server.login('redcated@gmail.com', 'redacted')
server.sendmail(fromm, "redacted@gmail.com", msg.as_string())
server.quit()
return True
es = elasticsearch.Elasticsearch("10.204.11.13:1338", http_auth=('elastic','DVX3q1QlBqProSmvBO09'))
for x in es.search(index = elkindex, body = {"query": {"match_all": {}}})['hits']['hits']:
if 'kernel' in str(x):
minhash = pyblake2.blake2b(x.encode('utf-8')).hexdigest()
if not db.get('hashes').__contains__(minhash):
db.append('hashes', minhash)
db.dump()
email_user("jag@minemail.com", "Ett kernel meddelande har hittas i syslog", x)
Итак, в итоге:
Сценарий успешно выполнен, подключение к API ELS успешно.
, но почта не доставляется
Все предложения приветствуются.