Il y a pas mal de soi-disant tâches, telles que la création d'une carte des étoiles pour le travail (comme la participation à une soirée en dehors du travail) et le fait d'encourager les personnes qui ne l'ont pas encore soumis sur cette base. J'ai donc décidé de le traiter avec Python. Si vous êtes une entreprise qui utilise Microsoft Office 365, vous pouvez le faire sans code comme celui-ci si vous utilisez Automate Flow, mais je l'ai préparé car aucun environnement ne peut être utilisé autour de moi.
Préparez un fichier appelé "maillist.xlsx" comme indiqué ci-dessous.
mail_send.py
import openpyxl, smtplib
from email import message
wb = openpyxl.load_workbook('maillist.xlsx')
sheet = wb.get_sheet_by_name('Sheet1')
lastCol = sheet.max_column
latest_month = sheet.cell(row=1, column=lastCol).value
#Vérifier le fichier Excel
unpaid_Members = {}
for r in range(2,sheet.max_row + 1):
payment = sheet.cell(row=r, column=lastCol).value
if payment != 'paid':
name = sheet.cell(row=r, column=1).value
email = sheet.cell(row=r, column=2).value
unpaid_Members[name] = email
#Connectez-vous à votre compte de messagerie
smtp_host = 'smtp-mail.outlook.com'
smtp_port = 587
send_name = 'Master'
from_email ='[email protected]'
username = '[email protected]'
password = 'password'
smtp_obj = smtplib.SMTP(smtp_host, smtp_port)
smtp_obj.ehlo()
smtp_obj.starttls()
smtp_obj.login(username,password)
#Demander à l'utilisateur un mot de passe sur l'écran de ligne de commande
#Lorsque vous souhaitez le saisir, importez le package sys et exécutez le code ci-dessous.
# smtp_obj.login(username,sys.argv[1])
#envoyer un e-mail
for name, email in unpaid_Members.items():
msg = message.EmailMessage()
msg.set_content("""
{}m
Bon travail.
Il semble que les frais de participation à la soirée de bienvenue de la semaine prochaine n'aient pas encore été payés.
Veuillez confirmer.
""".format(name))
msg['From'] = '{}<{}>'.format(send_name, from_email)
msg['Subject'] = '{}Concernant le montant du paiement de'.format(latest_month)
print('Envoi d'un e-mail{}...' .format(email))
sendmail_Status = smtp_obj.sendmail(from_email, email, msg.as_string())
if sendmail_Status != {}:
print('{}Un problème est survenu lors de l'envoi du courrier à: {}'.format(email,sendmail_Status))
smtp_obj.quit()
Il ne vous reste plus qu'à exécuter ce fichier .py. En définissant et en exécutant un calendrier, il est possible d'inciter automatiquement les personnes non rémunérées à collecter les frais de reconstruction pour la fête de boire tous les jours. Ayez une bonne vie de courrier.
Recommended Posts