-
Colombain Agathe authoredColombain Agathe authored
SecretSanta.py 2.60 KiB
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import random
from dotenv import load_dotenv
import os
##Les noms des participants et leurs mails sont ici fictifs pour ne délivrer aucune information personnelle
participants_names = ['Alice', 'Bob', 'Charlie', 'Dana']
participants_emails = ['alice@example.com', 'bob@example.com', 'charlie@example.com', 'dana@example.com']
def send_mail(email, subject, body):
smtp_server = 'smtp.gmail.com'
smtp_port = 587
load_dotenv()
smtp_username = os.getenv("SMTP_USERNAME")
smtp_password = os.getenv("SMTP_PASSWORD")
message = MIMEMultipart()
message['From'] = smtp_username
message['To'] = email
message['Subject'] = subject
message.attach(MIMEText(body, 'plain'))
with smtplib.SMTP(smtp_server, smtp_port) as server:
server.starttls()
server.login(smtp_username, smtp_password)
server.sendmail(smtp_username, email, message.as_string())
def tirageausort(names, emails):
results = []
while True:
shuffled_names = names.copy()
random.shuffle(shuffled_names)
if all(giver != receiver for giver, receiver in zip(names, shuffled_names)):
break
for i, name in enumerate(names):
giver = names[i]
receiver = shuffled_names[i]
receiver_email = emails[names.index(receiver)]
results.append((i, receiver))
return results
def secretsanta(names, emails):
tirage = tirageausort(names, emails)
subject = "Super Secret Santa de la squad !!! Regarde qui tu as pioché ici ! "
for i, receiver in tirage:
body = f"""
Bonjour {names[i]},
Cette année, tu es le Père Noël secret de {receiver} dans notre squad ! 🎅🎁
On a fixé un budget d'environ 20-25€, mais ne t'inquiète pas si tu fais moins ou que tu dépasses un peu, l'essentiel c'est de faire plaisir ! 🌟
Allez, c'est parti ! Va t'éclater à choisir un super cadeau pour ton ami secret ! 🎉
Petit message de l'organisatrice :
Hello les copains, c'est Agathe ! Cette année, j'ai décidé de coder moi-même le tirage au sort du Père Noël secret.
Comme vous le voyez, vous recevez un mail de ma part, mais c'est bel et bien mon ordinateur qui a choisi votre personne et qui vous indique qui vous avez.
Je n'ai aucun pouvoir sur le tirage et je ne sais pas qui vous avez, donc merci de garder le secret et de ne pas répondre à ce mail !
Joyeux Père Noël secret ! 🎄🎅
"""
print(emails[i])
send_mail(emails[i], subject, body)
secretsanta(participants_names, participants_emails)