sending email reminders by company

This commit is contained in:
2023-10-11 12:20:53 +02:00
parent 7dfc0064d1
commit 1c4fb6d701
3 changed files with 81 additions and 10 deletions

View File

@@ -58,12 +58,15 @@
</div>
<div class="form-group">
<label class="col-xs-3 control-label" for="email_from">Email</label>
<div class="col-xs-8">
<div class="col-xs-5">
<input class="form-control" type="text" name="email_from" value="${societe.email_from}"
placeholder="45 caractères maximum"
data-fv-emailaddress="true"
data-fv-emailaddress-message="L'adresse email n'est pas valide" />
</div>
<div class="col-xs-3">
<input class="form-control" type="text" name="email_cci" value="${societe.email_cci}" />
</div>
</div>
<div class="form-group">
<label class="col-xs-3 control-label" for="Corresp1">Horiares</label>

View File

@@ -7,6 +7,10 @@ from pyramid.view import (
from pyramid_mailer import get_mailer
from pyramid_mailer.message import Message, Attachment
import smtplib
import ssl
from email.message import EmailMessage
from time import sleep
from datetime import *
from dateutil.relativedelta import *
@@ -32,6 +36,7 @@ def batch_nuit(request):
# ----- effacer le log
truncate_log(request)
"""
# ----- PURGE des données obsolètes
insert_log(request, 'PURGE','- Début PURGE DES DONNEES OBSOLETES')
TODAY = date.today()
@@ -65,6 +70,8 @@ def batch_nuit(request):
# attendre 3 secondes
sleep(3)
"""
# ----- envoyer les rappels
notifier_rappels(request)
@@ -93,6 +100,7 @@ def notifier_rappels(request):
# RDV ayant une heure
date_heure = item.rdv_date.strftime('%d/%m/%Y - %H:%M')
szBody = """
<!DOCTYPE html>
<html><body>
<p>Bonjour %s %s,</p>
<p>Lentreprise %s vous rappelle votre prochain rendez-vous, pris d'un commun accord</p>
@@ -123,18 +131,43 @@ def notifier_rappels(request):
return
def email_rappels(request, objet, corps, destinataire, societe):
# import pdb;pdb.set_trace()
# Create a secure SSL context
context = ssl.create_default_context()
smtp_server = "smtp.office365.com"
smtp_port = 587 # For TLS
# lire la societe
soc = get_societes(request, societe)
if soc:
# expediteur = soc.email_from
# seul admin_email peut envoyer des mails avec Office3
expediteur = request.registry.settings['mondumas.admin_email']
smtp_user = soc.email_from
smtp_pass = soc.email_cci
else:
expediteur = request.registry.settings['mondumas.admin_email']
# envoyer le rappel
error = send_mail(request, expediteur, destinataire, "[Ent. Dumas] " + objet, corps)
smtp_user = request.registry.settings['mail.username']
smtp_pass = request.registry.settings['mail.password']
return len(error)
# construire le message
msg = EmailMessage()
msg['Subject'] = "[Ent. Dumas] " + objet
msg['From'] = smtp_user
msg['To'] = destinataire
msg.set_content(corps, subtype='html')
# Try to log in to server and send email
try:
server = smtplib.SMTP(smtp_server,smtp_port)
server.starttls(context=context) # Secure the connection
server.login(smtp_user, smtp_pass)
# envoyer l'email
server.send_message(msg)
print("sendmail -> OK")
except Exception as e:
# Print any error messages to stdout
print(e)
finally:
server.quit()
return 0
def email_rapport(request):
NOW = datetime.now()

View File

@@ -0,0 +1,35 @@
#!/usr/bin/env python3
import smtplib
import ssl
# Fabrication du corps du email_passwordMessage
sender = "peinture@entreprise-dumas.com"
receiver = "phuoc@caotek.fr"
message = """\
Subject: Test d'envoi d'un message en TLS
Voici le contenu du message. Phuoc Cao"""
# Create a secure SSL context
context = ssl.create_default_context()
smtp_server = "smtp.office365.com"
smtp_port = 587 # For TLS
smtp_user = "peinture-dumas@entreprise-dumas.com"
smtp_pass = "Nar50611"
# Try to log in to server and send email
try:
server = smtplib.SMTP(smtp_server,smtp_port)
# server.ehlo() # Can be omitted
server.starttls(context=context) # Secure the connection
# server.ehlo() # Can be omitted
server.login(smtp_user, smtp_pass)
# envoyer l'email
server.sendmail(sender, receiver, message)
print("sendmail -> OK")
except Exception as e:
# Print any error messages to stdout
print(e)
finally:
server.quit()