Elyos_FI_Back_Office/email_mgt.py

440 lines
15 KiB
Python

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders
import locale
import datetime
import inspect
import sys, os
import prj_common as mycommon
import GlobalVariable as MYSY_GV
locale.setlocale(category=locale.LC_ALL, locale='fr_FR.utf8')
smtp_address = 'smtp-relay.sendinblue.com'
port = 587
sender = 'contact@mysy-training.com'
receiver = ["cbalde3@mysy-training.com","billardman1@gmail.com"]
user = 'contact@mysy-training.com'
password = 'yGmzqBfrjb3YCvQN'
def send_user_account_mail(message, account_mail):
try:
tomorrow = datetime.date.today() + datetime.timedelta(days=1)
tomorrow_day = tomorrow.strftime("%A")
print("debut envoi mail de test ")
# on rentre les renseignements pris sur le site du fournisseur
msg = MIMEMultipart("alternative")
msg['Subject'] = 'MySy Training : Activez votre compte '
msg['From'] = 'billardman01@hotmail.com'
msg['To'] = str(account_mail)
html = '''
<!DOCTYPE html>
<html>
<body>
<div style="background-color:#eee;padding:0px;text-align:center;width:100%">
<h2 style="font-family:Georgia, 'Times New Roman', Times, serif;color#454349;">
<img src="http://88.170.110.220/img/MYSY-LOGO-BLUE.png" alt="Mysy Training Logo" width="110px" height="70px"/> </h2>
</div>
<div style="padding:20px 0px;text-align:center;font-family:Georgia, 'Times New Roman', Times, serif;color#454349;font-size:2rem;">
<div style="width:100%">
<div style="text-align:center;">
Bonjour
<div style="padding:20px 0px;text-align:center;font-family:Georgia, 'Times New Roman', Times, serif;color#454349;font-size:1.2rem;">
Votre adresse e-mail a bien été enregistrée sur le site <font color="green">MySy-Training</font>. <br>
Pour valider votre compte, veuillez cliquer sur le lien <font color="green">ci-dessous :</font>
<br/>
<br/>
<div style="background-color:#1962AB;width:20%;text-align:center;margin-left:auto; margin-right:auto;">
<b> <a href="https://apimysy.iexercice.com/myclass/api/valide_user_account/{objId}" target="_blank" style="color: white;">
CLIQUEZ ICI
</a>
</b>
</div>
</font>
<br/>
<b>
<a href="http://127.0.0.1:5000/myclass/api/valide_user_account/{objId}" target="_blank" style="font-size:0.5rem;" >
CLIQUEZ ICI ==> LOCALHOST
</b>
</a>
<p>Cordialement<br>
L'equipe informatique de MySy
</p>
</p>
</div>
</div>
</body>
</html>
'''.format(code=tomorrow_day, objId=message)
html_mime = MIMEText(html, 'html')
# msg.attach(texte_mime)
msg.attach(html_mime)
print("html_mime ="+str(html))
toaddr = str(account_mail)
cc = ['billardman01@hotmail.com']
toaddrs = [toaddr] + cc
# msg.attach(MIMEText(open(filename).read()))
with smtplib.SMTP(smtp_address, port) as server:
server.starttls() # Secure the connection
server.login(user, password)
server.sendmail(sender, toaddrs, msg.as_string())
mycommon.myprint("mail successfully sent to "+str(toaddrs))
return True
except Exception as e:
exc_type, exc_obj, exc_tb = sys.exc_info()
mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - ERRORRRR AT Line : " + str(exc_tb.tb_lineno))
return False, " Impossible d'envoyer l'email de notification "
def send_partner_account_mail(message, account_mail):
try:
tomorrow = datetime.date.today() + datetime.timedelta(days=1)
tomorrow_day = tomorrow.strftime("%A")
receiver = ["cherif.balde@yahoo.fr","cbalde@bigben-connected.com",str(account_mail)]
toaddrs = ", ".join(receiver)
print(" mail enoye à : "+toaddrs)
print("debut envoi mail de test ")
# on rentre les renseignements pris sur le site du fournisseur
msg = MIMEMultipart("alternative")
msg['Subject'] = 'MySy : test email activation compte '
msg['From'] = 'billardman01@hotmail.com'
msg['To'] = str(toaddrs)
msg['Cc'] = 'cbalde@mysy-training.com'
html = '''
<html>
<body>
<p>Bonjour</p>
<p>Vous venez de créer un compte partenaire.
Pour activier votre compte, merci de cliquer ici </b> </p>
<b>
<a href="https://apimysy.iexercice.com/myclass/api/valide_partnair_account/{objId}" target="_blank" >
https://apimysy.iexercice.com/myclass/api/valide_partnair_account/{objId}
</b>
</a>
<a>
ou
<b>
<a href="http://127.0.0.1:5000/myclass/api/valide_partnair_account/{objId}" target="_blank" >
http://127.0.0.1:5000/myclass/api/valide_partnair_account/{objId}
</b>
</a>
<p>Cordialement<br>
L'equipe informatique de MySy
</p>
</body>
</html>
'''.format(code=tomorrow_day, objId=message)
html_mime = MIMEText(html, 'html')
# msg.attach(texte_mime)
msg.attach(html_mime)
print("html_mime ="+str(html))
with smtplib.SMTP(smtp_address, port) as server:
server.starttls() # Secure the connection
server.login(user, password)
server.sendmail(sender, toaddrs, msg.as_string())
print("mail successfully sent")
return True
except Exception as e:
exc_type, exc_obj, exc_tb = sys.exc_info()
mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - ERRORRRR AT Line : " + str(exc_tb.tb_lineno))
return False, " Impossible d'envoyer l'email de notification"
'''
Envoie de l'email de reinitialisation du mot de passe du user
'''
def send_user_init_pwd_mail(token, account_mail):
try:
tomorrow = datetime.date.today() + datetime.timedelta(days=1)
tomorrow_day = tomorrow.strftime("%A")
print("debut envoi mail de test ")
# on rentre les renseignements pris sur le site du fournisseur
msg = MIMEMultipart("alternative")
msg['Subject'] = '[MySy Training Technology] : Reinitialisez votre mot de passe'
msg['From'] = 'billardman01@hotmail.com'
msg['To'] = str(account_mail)
html = '''
<!DOCTYPE html>
<html>
<body>
<div style="background-color:#eee;padding:0px;text-align:center;width:100%">
<h2 style="font-family:Georgia, 'Times New Roman', Times, serif;color#454349;">
<img src="http://88.170.110.220/img/MYSY-LOGO-BLUE.png" alt="Mysy Training Logo" width="110px" height="70px"/> </h2>
</div>
<div style="padding:20px 0px;text-align:center;font-family:Georgia, 'Times New Roman', Times, serif;color#454349;font-size:2rem;">
<div style="width:100%">
<div style="text-align:center;">
Bonjour
<div style="padding:20px 0px;text-align:center;font-family:Georgia, 'Times New Roman', Times, serif;color#454349;font-size:1.2rem;">
Nous avons reçu une demande de réinitialisation du mot de passe de votre compte <font color="green">MySy-Training</font>.<br/>
Veuillez cliquer sur le bouton ci-dessous pour le réinitialiser.
. <br/>
<br/>
<div style="background-color:#1962AB;width:20%;text-align:center;margin-left:auto; margin-right:auto;">
<b> <a href="https://www.mysy-training.com/ResetUserPwd/{objId}" target="_blank" style="color: white;">
Changez de mot de passe
</a>
</b>
</div>
</font>
<br/>
<b>
<a href="http://localhost:3010/ResetUserPwd/{objId}" target="_blank" style="font-size:0.5rem;" >
CLIQUEZ ICI ==> LOCALHOST
</b>
</a>
<p>Cordialement<br>
L'equipe informatique de MySy
</p>
</p>
</div>
</div>
</body>
</html>
'''.format(code=tomorrow_day, objId=token)
html_mime = MIMEText(html, 'html')
# msg.attach(texte_mime)
msg.attach(html_mime)
print("html_mime =" + str(html))
toaddr = str(account_mail)
cc = ['billardman01@hotmail.com']
toaddrs = [toaddr] + cc
# msg.attach(MIMEText(open(filename).read()))
with smtplib.SMTP(smtp_address, port) as server:
server.starttls() # Secure the connection
server.login(user, password)
server.sendmail(sender, toaddrs, msg.as_string())
mycommon.myprint("mail successfully sent to " + str(toaddrs))
return True
except Exception as e:
exc_type, exc_obj, exc_tb = sys.exc_info()
mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - ERRORRRR AT Line : " + str(exc_tb.tb_lineno))
return False, " Impossible d'envoyer l'email de notification "
'''
Envoie de l'email de suppression du compte utilisateur
'''
def send_user_delete_account(token, account_mail):
try:
tomorrow = datetime.date.today() + datetime.timedelta(days=1)
tomorrow_day = tomorrow.strftime("%A")
msg = MIMEMultipart("alternative")
msg['Subject'] = '[MySy Training Technology] : Suppression de votre'
msg['From'] = 'billardman01@hotmail.com'
msg['To'] = str(account_mail)
html = '''
<!DOCTYPE html>
<html>
<body>
<div style="background-color:#eee;padding:0px;text-align:center;width:100%">
<h2 style="font-family:Georgia, 'Times New Roman', Times, serif;color#454349;">
<img src="http://88.170.110.220/img/MYSY-LOGO-BLUE.png" alt="Mysy Training Logo" width="110px" height="70px"/> </h2>
</div>
<div style="padding:20px 0px;text-align:center;font-family:Georgia, 'Times New Roman', Times, serif;color#454349;font-size:2rem;">
<div style="width:100%">
<div style="text-align:center;">
Bonjour
<div style="padding:20px 0px;text-align:center;font-family:Georgia, 'Times New Roman', Times, serif;color#454349;font-size:1.2rem;">
Nous avons reçu une demande de suppression de votre compte <font color="green">MySy-Training</font>.<br/>
Si vous n'etes pas l'auteur de la demande, merci de contacter le service support de MySy.
. <br/>
Le échéant, vous pouvez finaliser la suppression de votre compte en cliquant sur le lien ci-dessous.<br/>
<font color="red">Important : Cette action entrenerait la suppresion definitive de vos information.</font>
<br/>
<div style="background-color:#1962AB;width:20%;text-align:center;margin-left:auto; margin-right:auto;">
<b> <a href="https://www.mysy-training.com/DeleteUserAccount/{objId}" target="_blank" style="color: white;">
Changez de mot de passe
</a>
</b>
</div>
</font>
<br/>
<b>
<a href="http://localhost:3010/DeleteUserAccount/{objId}" target="_blank" style="font-size:0.5rem;" >
CLIQUEZ ICI ==> LOCALHOST
</b>
</a>
<p>Cordialement<br>
L'equipe informatique de MySy
</p>
</p>
</div>
</div>
</body>
</html>
'''.format(code=tomorrow_day, objId=token)
html_mime = MIMEText(html, 'html')
# msg.attach(texte_mime)
msg.attach(html_mime)
print("html_mime =" + str(html))
toaddr = str(account_mail)
cc = ['billardman01@hotmail.com']
toaddrs = [toaddr] + cc
# msg.attach(MIMEText(open(filename).read()))
with smtplib.SMTP(smtp_address, port) as server:
server.starttls() # Secure the connection
server.login(user, password)
server.sendmail(sender, toaddrs, msg.as_string())
mycommon.myprint("mail successfully sent to " + str(toaddrs))
return True
except Exception as e:
exc_type, exc_obj, exc_tb = sys.exc_info()
mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - ERRORRRR AT Line : " + str(exc_tb.tb_lineno))
return False, " Impossible d'envoyer l'email de notification "
'''
Cette fonction envoir n'import quel email avec les varibable :
- recever_email
- objet_mail
- message_mail
'''
def SendGenericEmail(mail_recever=None, mail_object=None, mail_message=None):
try:
tomorrow = datetime.date.today() + datetime.timedelta(days=1)
tomorrow_day = tomorrow.strftime("%A")
print("debut envoi mail de test ")
# on rentre les renseignements pris sur le site du fournisseur
msg = MIMEMultipart("alternative")
msg['Subject'] = '[MySy Training Technology] : '+str(mail_object)
msg['From'] = MYSY_GV.INTERNAL_MAIL_SENDER
msg['To'] = str(mail_recever)
html = '''
<!DOCTYPE html>
<html>
<body>
<div style="background-color:#eee;padding:0px;text-align:center;width:100%">
<h2 style="font-family:Georgia, 'Times New Roman', Times, serif;color#454349;">
<img src="http://88.170.110.220/img/MYSY-LOGO-BLUE.png" alt="Mysy Training Logo" width="110px" height="70px"/> </h2>
</div>
<div style="padding:20px 0px;text-align:center;font-family:Georgia, 'Times New Roman', Times, serif;color#454349;font-size:2rem;">
<div style="width:100%">
<div style="text-align:center;">
Bonjour
<div style="padding:20px 0px;text-align:center;font-family:Georgia, 'Times New Roman', Times, serif;color#454349;font-size:1.2rem;">
Message de <font color="green">MySy-Training Technology </font>.<br/>
{mymessage}
</div>
</body>
</html> '''.format(mymessage=mail_message)
html_mime = MIMEText(html, 'html')
# msg.attach(texte_mime)
msg.attach(html_mime)
print("html_mime =" + str(html))
toaddr = str(mail_recever)
cc = ['cbalde@mysy-training.com']
toaddrs = [toaddr] + cc
# msg.attach(MIMEText(open(filename).read()))
with smtplib.SMTP(smtp_address, port) as server:
server.starttls() # Secure the connection
server.login(user, password)
server.sendmail(sender, toaddrs, msg.as_string())
mycommon.myprint("mail successfully sent to " + str(toaddrs))
return True
except Exception as e:
exc_type, exc_obj, exc_tb = sys.exc_info()
print(str(inspect.stack()[0][3]) + " -" + str(e) + " - ERRORRRR AT Line : " + str(exc_tb.tb_lineno))
return False