sending email reminders by company
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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 *
|
||||
@@ -31,7 +35,8 @@ 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()
|
||||
@@ -64,7 +69,9 @@ def batch_nuit(request):
|
||||
update_rappels(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>L’entreprise %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']
|
||||
|
||||
# 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 len(error)
|
||||
return 0
|
||||
|
||||
def email_rapport(request):
|
||||
NOW = datetime.now()
|
||||
|
||||
Reference in New Issue
Block a user