import pymongo from pymongo import MongoClient import json from bson import ObjectId import re from datetime import datetime import prj_common as mycommon import secrets import inspect import sys, os import csv import pandas as pd from pymongo import ReturnDocument from math import isnan import GlobalVariable as MYSY_GV import ela_index_bdd_classes as eibdd import email_mgt as email from validate_email import validate_email def email_validation(): try: coll_emails = MYSY_GV.dbname['bdd_email'] cpt = 0 for val in coll_emails.find({'valide':'1', "checked_status": {"$ne": "1"}}): cpt = cpt + 1 if ("email_address" in val.keys()): is_valid = validate_email( email_address=val['email_address'], check_format=True, check_blacklist=True, check_dns=True, dns_timeout=5, check_smtp=True, smtp_timeout=5, smtp_helo_host='smtp.office365.com', smtp_from_address='support@mysy-training.com', smtp_skip_tls=False, smtp_tls_context=None, smtp_debug=False) retval = "" checked_status = "" if( is_valid ): #print(" ### l'adresse ",val['email_address']," est valide ") retval = True checked_status = "1" else: #print(" ### l'adresse ", val['email_address'], " N'EST PAS valide ") retval = False checked_status = "0" mydata = {} mytoday = datetime.today().strftime("%d/%m/%Y") mydata['last_check_date'] = str(mytoday)[0:10] mydata['checked'] = str("1") mydata['checked_status'] = str(checked_status) ret_val = coll_emails.find_one_and_update( {'email_address': str(val['email_address']), 'valide': '1'}, {"$set": mydata}, return_document=ReturnDocument.AFTER ) print(" ### "+str(cpt)+" email traité") return retval, str(cpt)+" adresse email ont été mise à jour " except Exception as e: exc_type, exc_obj, exc_tb = sys.exc_info() mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - Line : " + str(exc_tb.tb_lineno)) return False, " Impossible de recuperer la formation"