--Je veux envoyer un email avec
python```
Je voulais être notifié par e-mail des résultats de divers processus, j'ai donc intégré l'envoi d'e-mails avec Outlook
.
Comme il s'agit d'une opération quotidienne, si je la définis dans le planificateur de tâches, cela signifie qu'un e-mail a été envoyé, mais il n'est pas réellement envoyé.
Il est envoyé s'il est exécuté directement, et non depuis le planificateur de tâches.
Après quelques recherches, j'ai trouvé un peu difficile d'utiliser des produits office
tels que Outlook
dans un environnement serveur.
J'ai trouvé que je pouvais utiliser la bibliothèque standard comme alternative, alors prenez-en note.
--Utilisez les bibliothèques standard `smtplib``` et` `ʻemail``` --En outre,
nom d'hôte du serveur``
,
numéro de port `,` `ID d'authentification
,
mot de passe d'authentification``
est requis
--Cependant, cela peut être OK sans le
ID d'authentification '' et le
mot de passe d'authentification '' (selon l'environnement). --S'il y a plusieurs destinations, elles seront envoyées une par une, alors passez
l'adresse de destination '' dans une liste et tournez-la avec l'instruction`
''.
sample.py
from email import message
import smtplib
smtp_host = 'nom d'hôte'
smtp_port =Numéro d'hôte
smtp_account_id = 'ID d'authentification'
smtp_account_pass = 'Mot de passe d'authentification'
send_from = '[email protected]'
l_send_to = [
'[email protected]',
'[email protected]'
]
subject = 'Rapport de travail'
content = f'Le travail est terminé'
for s in l_send_to:
msg = message.EmailMessage()
msg.set_content(content)
msg['Subject'] = subject
msg['From'] = send_from
msg['To'] = s
server = smtplib.SMTP(smtp_host, smtp_port, timeout=10)
server.login(smtp_account_id, smtp_account_pass) #Parfois ça va sans ça
server.send_message(msg)
server.quit()
Recommended Posts