sending email reminders by company
This commit is contained in:
@@ -58,12 +58,15 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="col-xs-3 control-label" for="email_from">Email</label>
|
<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}"
|
<input class="form-control" type="text" name="email_from" value="${societe.email_from}"
|
||||||
placeholder="45 caractères maximum"
|
placeholder="45 caractères maximum"
|
||||||
data-fv-emailaddress="true"
|
data-fv-emailaddress="true"
|
||||||
data-fv-emailaddress-message="L'adresse email n'est pas valide" />
|
data-fv-emailaddress-message="L'adresse email n'est pas valide" />
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col-xs-3">
|
||||||
|
<input class="form-control" type="text" name="email_cci" value="${societe.email_cci}" />
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="col-xs-3 control-label" for="Corresp1">Horiares</label>
|
<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 import get_mailer
|
||||||
from pyramid_mailer.message import Message, Attachment
|
from pyramid_mailer.message import Message, Attachment
|
||||||
|
|
||||||
|
import smtplib
|
||||||
|
import ssl
|
||||||
|
from email.message import EmailMessage
|
||||||
|
|
||||||
from time import sleep
|
from time import sleep
|
||||||
from datetime import *
|
from datetime import *
|
||||||
from dateutil.relativedelta import *
|
from dateutil.relativedelta import *
|
||||||
@@ -31,7 +35,8 @@ def batch_nuit(request):
|
|||||||
|
|
||||||
# ----- effacer le log
|
# ----- effacer le log
|
||||||
truncate_log(request)
|
truncate_log(request)
|
||||||
|
|
||||||
|
"""
|
||||||
# ----- PURGE des données obsolètes
|
# ----- PURGE des données obsolètes
|
||||||
insert_log(request, 'PURGE','- Début PURGE DES DONNEES OBSOLETES')
|
insert_log(request, 'PURGE','- Début PURGE DES DONNEES OBSOLETES')
|
||||||
TODAY = date.today()
|
TODAY = date.today()
|
||||||
@@ -64,7 +69,9 @@ def batch_nuit(request):
|
|||||||
update_rappels(request)
|
update_rappels(request)
|
||||||
# attendre 3 secondes
|
# attendre 3 secondes
|
||||||
sleep(3)
|
sleep(3)
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
# ----- envoyer les rappels
|
# ----- envoyer les rappels
|
||||||
notifier_rappels(request)
|
notifier_rappels(request)
|
||||||
|
|
||||||
@@ -93,6 +100,7 @@ def notifier_rappels(request):
|
|||||||
# RDV ayant une heure
|
# RDV ayant une heure
|
||||||
date_heure = item.rdv_date.strftime('%d/%m/%Y - %H:%M')
|
date_heure = item.rdv_date.strftime('%d/%m/%Y - %H:%M')
|
||||||
szBody = """
|
szBody = """
|
||||||
|
<!DOCTYPE html>
|
||||||
<html><body>
|
<html><body>
|
||||||
<p>Bonjour %s %s,</p>
|
<p>Bonjour %s %s,</p>
|
||||||
<p>L’entreprise %s vous rappelle votre prochain rendez-vous, pris d'un commun accord</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
|
return
|
||||||
|
|
||||||
def email_rappels(request, objet, corps, destinataire, societe):
|
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
|
# lire la societe
|
||||||
soc = get_societes(request, societe)
|
soc = get_societes(request, societe)
|
||||||
if soc:
|
if soc:
|
||||||
# expediteur = soc.email_from
|
smtp_user = soc.email_from
|
||||||
# seul admin_email peut envoyer des mails avec Office3
|
smtp_pass = soc.email_cci
|
||||||
expediteur = request.registry.settings['mondumas.admin_email']
|
|
||||||
else:
|
else:
|
||||||
expediteur = request.registry.settings['mondumas.admin_email']
|
smtp_user = request.registry.settings['mail.username']
|
||||||
# envoyer le rappel
|
smtp_pass = request.registry.settings['mail.password']
|
||||||
error = send_mail(request, expediteur, destinataire, "[Ent. Dumas] " + objet, corps)
|
|
||||||
|
# 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):
|
def email_rapport(request):
|
||||||
NOW = datetime.now()
|
NOW = datetime.now()
|
||||||
|
|||||||
35
smtp-TLS-office365-dumas.py
Normal file
35
smtp-TLS-office365-dumas.py
Normal 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()
|
||||||
Reference in New Issue
Block a user