zhangyunhao116 / zmail

Zmail makes it easier to send and retrieve emails in python3
MIT License
433 stars 111 forks source link

[WARNING] Can not parse:image/jpeg的错误提示 #33

Closed dorty3541 closed 6 years ago

dorty3541 commented 6 years ago

脚本如下,但是会有很奇怪的[WARNING] Can not parse:image/jpeg的提示,不知道是哪个输出里出现的呢 import json import re import time

import zmail

def date_to_timestamp(date, format_string="%Y-%m-%d %H:%M:%S"): time_array = time.strptime(date, format_string) time_stamp = time.mktime(time_array) return time_stamp

def getmail(): try: pop_server = zmail.server('txy_zabbix@XXXX.com', 'XXXX', pop_host='XXXX', pop_port='995', pop_ssl=True) mails = pop_server.get_mails(subject='XXXX封堵通知') except: pass for mail in mails:

获取邮件中需要的信息

    infor_dict = {}
    mail_info = str(mail['content_html']).replace("\n", " ")
    infor_dict['IP'] = re.search(
        r'(?<![0-9])(?:(?:25[0-5]|2[0-4][0-9]|[0-1]?[0-9]{1,2})[.](?:25[0-5]|2[0-4][0-9]|[0-1]?[0-9]{1,2})[.](?:25[0-5]|2[0-4][0-9]|[0-1]?[0-9]{1,2})[.](?:25[0-5]|2[0-4][0-9]|[0-1]?[0-9]{1,2}))(?![0-9])', mail_info).group()
    infor_dict['attack_flow'] = re.search(r'(\d+Mbps)', mail_info).group()

    # 获取当前时间和邮件中的时间
    rece_time = str(mail['date'].strip('+0800').strip(" "))
    rece_time = int(date_to_timestamp(rece_time))

    current_time = int(time.time())
    if current_time - rece_time < 58 :  # 与crontab设置的时间相同
        print("被封堵IP为%s,DDoS流量为%s" %
              (infor_dict['IP'], infor_dict['attack_flow']))
zhangyunhao116 commented 6 years ago

这是在multiple_part中发现了一个无法被正确解析的part part的content-type为image/jpeg 却没有找到附件标识 所以出了个warning 请看看附件是否能被正确解析了