+ Bonjour
+
+
+ Message de MySy-Training Technology .
+ ici le message de cherif
+ {mymessage}
+
+
+ '''.format(mymessage=mail_message)
+ """
+ msg.set_content('''
+
+
+
+
+
+
+

+
+
+
+

+
+
Article 1
+
+ Lorem ipsum dolor sit amet consectetur, adipisicing elit. A
+ ducimus deleniti nemo quibusdam iste sint!
+
+
Read more
+
+
+
+
+
+
+
+
+
+ ''', subtype='html')
+ #html_mime = MIMEText(html, 'html')
+
+ # msg.attach(texte_mime)
+ #msg.attach(html_mime)
+
+ smtpserver.ehlo()
+ smtpserver.starttls()
+ smtpserver.login(user, password)
+ smtpserver.send_message(msg)
+ smtpserver.close()
+
+ """
+ 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, "mail envoyé"
+ 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, " Impossible d'envoyer le mail"
+
+
+""" envoie email avec template """
+def MysyGenericEmail_tpl():
+ try:
+ tomorrow = datetime.date.today() + datetime.timedelta(days=1)
+ tomorrow_day = tomorrow.strftime("%A")
+ mail_recever = "billardman01@hotmail.com,cherif.balde@yahoo.fr,cbalde@mysy-training.com"
+ mail_object = " new mysy email"
+ mail_message = " le message : corps du mail "
+
+ password = 'GomboyaVince1234+'
+ smtpsrv = "smtp.office365.com"
+ smtpserver = smtplib.SMTP(smtpsrv, 587)
+ user = "cbalde@mysy-training.com"
+
+ print("debut envoi mail de test ")
+ # on rentre les renseignements pris sur le site du fournisseur
+
+ # msg = MIMEMultipart("alternative")
+ msg = EmailMessage()
+ msg['Subject'] = '[MySy Training Technology] : ' + str(mail_object)
+ msg['From'] = "cbalde@mysy-training.com"
+ msg['To'] = str(mail_recever)
+
+ # JINJA2
+ templateLoader = jinja2.FileSystemLoader(searchpath="./")
+ templateEnv = jinja2.Environment(loader=templateLoader)
+ TEMPLATE_FILE = "Template/tpl_mail_test.html"
+ template = templateEnv.get_template(TEMPLATE_FILE)
+ # This data can come from database query
+ body = {
+ "user": {"nom":"BALDE", "prenom":"sekou"},
+ "session": {"title":"le titre", "date_du": "01/01/01", "date_fin": "02/02/02"}
+ }
+ sourceHtml = template.render(user=body["user"], session=body["session"])
+
+
+ print('### sourceHtml = '+str(sourceHtml))
+
+
+ # END JINJA
+
+ msg.set_content(sourceHtml, subtype='html')
+ # html_mime = MIMEText(html, 'html')
+
+ # msg.attach(texte_mime)
+ # msg.attach(html_mime)
+
+ smtpserver.ehlo()
+ smtpserver.starttls()
+ smtpserver.login(user, password)
+ smtpserver.send_message(msg)
+ smtpserver.close()
+
+ """
+ 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, "mail envoyé"
+ 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, " Impossible d'envoyer le mail"
+
+
+""" Envoie de l'email de commande avec un template local """
+def MysyOrderEmail_tpl():
+ try:
+ tomorrow = datetime.date.today() + datetime.timedelta(days=1)
+ tomorrow_day = tomorrow.strftime("%A")
+ mail_recever = "billardman01@hotmail.com,cherif.balde@yahoo.fr,cbalde@mysy-training.com"
+ mail_object = " new mysy email"
+ mail_message = " le message : corps du mail "
+
+ password = 'GomboyaVince1234+'
+ smtpsrv = "smtp.office365.com"
+ smtpserver = smtplib.SMTP(smtpsrv, 587)
+ user = "cbalde@mysy-training.com"
+
+ print("debut envoi mail de test ")
+ # on rentre les renseignements pris sur le site du fournisseur
+
+ # msg = MIMEMultipart("alternative")
+ msg = EmailMessage()
+
+
+ # JINJA2
+ templateLoader = jinja2.FileSystemLoader(searchpath="./")
+ templateEnv = jinja2.Environment(loader=templateLoader)
+ TEMPLATE_FILE = "Template/MySy_Sales_Order_tpl.html"
+ template = templateEnv.get_template(TEMPLATE_FILE)
+ # This data can come from database query
+ body = {
+ "params": {"client_name":"BALDE",
+ "client_address":"sekou",
+ "client_zip_ville": "sekou",
+ "client_pays": "sekou",
+ "order_id": "sekou",
+ "date_order": "sekou",
+ "packs": "sekou",
+ "qty": "sekou",
+ "unit_price": "sekou",
+ "montant": "sekou",
+ "detail_packs": "sekou",
+ "total_ht": "sekou",
+ "tva": "sekou",
+ "montant": "sekou",
+ },
+ "user":{"nom":"balde", "prenom":"sekou"},
+
+ }
+ sourceHtml = template.render(params=body["params"], user=body["user"])
+
+ msg.set_content(sourceHtml, subtype='html')
+
+ msg['Subject'] = "[MySy Training] : Confirmation commande N°1222"
+ msg['From'] = "cbalde@mysy-training.com"
+ msg['To'] = str(mail_recever)
+
+ # html_mime = MIMEText(html, 'html')
+
+ # msg.attach(texte_mime)
+ # msg.attach(html_mime)
+
+ smtpserver.ehlo()
+ smtpserver.starttls()
+ smtpserver.login(user, password)
+ smtpserver.send_message(msg)
+ smtpserver.close()
+
+ """
+ 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, "mail envoyé"
+ 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, " Impossible d'envoyer le mail"
+
+
+'''
+Cette fonction envoie l'email de confirmation de la commande de vente
+'''
+def SalesOrderConfirmationEmail(account_mail, diction):
+ try:
+ '''
+ Verification des données obligatoires
+ '''
+ '''
+ Une fois qu'on a controlé que toutes les clés mise dans l'API sont correcte. etape precedente,
+ On controle que les champs obligatoires sont presents dans la liste
+ '''
+ field_list_obligatoire = ['invoice_nom', 'invoice_adr_city', 'invoice_adr_country', 'invoice_adr_street',
+ 'invoice_adr_zip', 'periodicite', 'total_ht', 'total_tva', 'total_ttc',
+ 'order_id', 'date_update', 'nb_product', 'order_date']
+
+ for val in field_list_obligatoire:
+ if val not in diction:
+ mycommon.myprint(str(inspect.stack()[0][3]) + " - La valeur '" + val + "' n'est pas presente dans liste ")
+ return False, " Impossible d'envoyer l'email de confirmation"
+
+ total_ht = diction['total_ht']
+ tva = diction['total_tva']
+ total_ttc = diction['total_ttc']
+ client_name = diction['invoice_nom']
+ client_address = diction['invoice_adr_street']
+ client_zip_ville = diction['invoice_adr_zip']+" "+diction['invoice_adr_city']
+ client_pays = diction['invoice_adr_country']
+ order_id = diction['order_id']
+ date_order = diction['order_date']
+ my_end_date = ""
+
+ if ("end_date" in diction.keys()):
+ if diction.keys():
+ my_end_date = "*Offre valable jusqu'au "+str(diction['end_date'])
+
+ nb_line = mycommon.tryInt(diction['nb_product'])
+
+ if( nb_line == 0 ):
+ mycommon.myprint(str(inspect.stack()[0][3]) + " - nb_line = '" + nb_line + "' : Aucun produit à facturer")
+ return False, " Impossible d'envoyer l'email de confirmation"
+
+ #print("client_name = "+str(client_name))
+ #print("client_address = " + str(client_address))
+ #print("client_zip_ville = " + str(client_zip_ville))
+ #print("client_pays = " + str(client_pays))
+ #print("order_id = " + str(order_id))
+ #print("date_order = " + str(date_order))
+ #print("nb_line = " + str(nb_line))
+ #print("End Date = " + str(my_end_date))
+
+ # Recuperation des produits (max 3 produits)
+ # produit 1
+ if ("item_0" in diction.keys()):
+ if( diction["item_0"] ):
+ packs = diction["item_0"]['code']
+ qty = diction["item_0"]['qty']
+ unit_price = diction["item_0"]['prix']
+ montant = diction["item_0"]['amount']
+ detail_packs = diction["item_0"]['pack_products']
+ #print("diction['item_0']['pack_products'] = "+str(diction["item_0"]['pack_products']))
+
+ # produit 2
+ if ("item_1" in diction.keys()):
+ if (diction["item_1"]):
+ packs1 = diction["item_1"]['code']
+ qty1 = diction["item_0"]['qty']
+ unit_price1 = diction["item_1"]['prix']
+ montant1 = diction["item_1"]['amount']
+ detail_packs1 = diction["item_1"]['pack_products']
+
+ # produit 3
+ if ("item_2" in diction.keys()):
+ if (diction["item_2"]):
+ packs2 = diction["item_2"]['code']
+ qty2 = diction["item_0"]['qty']
+ unit_price2 = diction["item_2"]['prix']
+ montant2 = diction["item_2"]['amount']
+ detail_packs2 = diction["item_1"]['pack_products']
+
+
+ i = 0
+ while (i < nb_line):
+ row = "item_" + str(i)
+ #print(" product = "+ str(diction[str(row)]))
+ i = i + 1
+
+ receiver = [str(account_mail)]
+ toaddrs = ", ".join(receiver)
+
+ #print(" mail enoye à toaddrs : " + toaddrs)
+ #print("debut envoi mail de test ")
+ # on rentre les renseignements pris sur le site du fournisseur
+
+ msg = MIMEMultipart("alternative")
+
+ msg['Subject'] = '[MySy Training]: votre compte PRO est pret'
+ msg['From'] = 'contact@mysy-training.com'
+ msg['To'] = str(toaddrs)
+ msg['Cc'] = 'contact@mysy-training.com'
+
+ to = [{"email": str(account_mail)}]
+
+ #print(" ############# to = "+str(to))
+ bcc = [{"email": "contact@mysy-training.com"}]
+
+ """
+ send_smtp_email = sib_api_v3_sdk.SendSmtpEmail(template_id=22, params={"order_id": order_id,
+ "date_order": date_order,
+
+ "total_ht": total_ht,
+ "tva": tva,
+ "total_ttc": total_ttc,
+ "client_name": client_name,
+ "client_address": client_address,
+ "client_zip_ville": client_zip_ville,
+ "client_pays": client_pays,
+
+ "packs": packs,
+ "detail_packs": detail_packs,
+ "qty": qty,
+ "unit_price": unit_price,
+ "montant":montant,
+ "end_date": my_end_date,
+
+ }, to=to, bcc=bcc)
+
+ """
+ #----------
+ mail_recever = "billardman01@hotmail.com,cherif.balde@yahoo.fr,cbalde@mysy-training.com"
+ mail_object = " new mysy email"
+ mail_message = " le message : corps du mail "
+
+ password = 'GomboyaVince1234+'
+ smtpsrv = "smtp.office365.com"
+ smtpserver = smtplib.SMTP(smtpsrv, 587)
+ user = "cbalde@mysy-training.com"
+
+ print("debut envoi mail de test ")
+ # on rentre les renseignements pris sur le site du fournisseur
+
+ # msg = MIMEMultipart("alternative")
+ msg = EmailMessage()
+
+ # JINJA2
+ templateLoader = jinja2.FileSystemLoader(searchpath="./")
+ templateEnv = jinja2.Environment(loader=templateLoader)
+ TEMPLATE_FILE = "Template/MySy_Sales_Order_tpl.html"
+ template = templateEnv.get_template(TEMPLATE_FILE)
+ # This data can come from database query
+ body = {
+ "params": {"order_id": order_id,
+ "date_order": date_order,
+ "total_ht": total_ht,
+ "tva": tva,
+ "total_ttc": total_ttc,
+ "client_name": client_name,
+ "client_email":str(account_mail),
+ "client_address": client_address,
+ "client_zip_ville": client_zip_ville,
+ "client_pays": client_pays,
+ "packs": packs,
+ "detail_packs": detail_packs,
+ "qty": qty,
+ "unit_price": unit_price,
+ "montant": montant,
+ "end_date": my_end_date,
+ },
+
+ }
+ sourceHtml = template.render(params=body["params"])
+
+ msg.set_content(sourceHtml, subtype='html')
+
+ msg['Subject'] = "[MySy Training] : Confirmation commande N°"+str(order_id)
+ msg['From'] = "cbalde@mysy-training.com"
+ msg['To'] = str(mail_recever)
+
+ # html_mime = MIMEText(html, 'html')
+
+ # msg.attach(texte_mime)
+ # msg.attach(html_mime)
+
+ smtpserver.ehlo()
+ smtpserver.starttls()
+ smtpserver.login(user, password)
+ smtpserver.send_message(msg)
+ smtpserver.close()
+
+ #--------
+
+
+
+ api_response = api_instance.send_transac_email(send_smtp_email)
+ print(api_response)
+ 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
+
diff --git a/main.py b/main.py
index c6dc52f..b217479 100644
--- a/main.py
+++ b/main.py
@@ -1871,6 +1871,30 @@ def SendPre_InscriptionEmail():
+"""
+API pour tester les nice emails de cherif (alternative à sendinblu)
+"""
+@app.route('/myclass/api/MysyGenericEmail_tpl/', methods=['POST','GET'])
+@crossdomain(origin='*')
+def MysyGenericEmail_tpl():
+ # On recupere le corps (payload) de la requete
+ payload = request.form.to_dict()
+ print(" ### MysyGenericEmail : payload = ",str(payload))
+ localStatus, message= emails.MysyGenericEmail_tpl()
+ return jsonify(status=localStatus, message=message )
+
+@app.route('/myclass/api/MysyOrderEmail_tpl/', methods=['POST','GET'])
+@crossdomain(origin='*')
+def MysyOrderEmail_tpl():
+ # On recupere le corps (payload) de la requete
+ payload = request.form.to_dict()
+ print(" ### MysyOrderEmail_tpl : payload = ",str(payload))
+ localStatus, message= emails.MysyOrderEmail_tpl()
+ return jsonify(status=localStatus, message=message )
+
+
+
+
if __name__ == '__main__':