[utils/sendmail.py] Pour envoyer des mails en python en gérant correctement l'encodage et les headers.
This commit is contained in:
parent
769c7fabed
commit
f6dea00d88
1 changed files with 37 additions and 0 deletions
37
utils/sendmail.py
Normal file
37
utils/sendmail.py
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
"""API pour envoyer facilement un mail en python
|
||||||
|
Author: Vincent Le Gallic <legallic@crans.org>
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Librairie de communication SMTP
|
||||||
|
import smtplib
|
||||||
|
from email.mime.text import MIMEText
|
||||||
|
from email import Charset
|
||||||
|
Charset.add_charset('utf-8', Charset.QP, Charset.QP, 'utf-8')
|
||||||
|
|
||||||
|
def sendmail(emetteur, destinataires, objet, message, cc=[], more_headers={}, debug=False):
|
||||||
|
"""Envoie un mail en utilisant la commande sendmail"""
|
||||||
|
mail = MIMEText(message, "plain", "utf-8")
|
||||||
|
mail["From"] = emetteur
|
||||||
|
mail["To"] = u", ".join(destinataires)
|
||||||
|
mail["Subject"] = objet
|
||||||
|
more_headers["X-Mailer"] = more_headers.get("X-Mailer", "/usr/scripts/utils/sendmail.py")
|
||||||
|
for k in more_headers.keys():
|
||||||
|
mail[k] = more_headers[k]
|
||||||
|
if cc != []:
|
||||||
|
mail["Cc"] = u", ".join(cc)
|
||||||
|
if debug:
|
||||||
|
print mail.as_string()
|
||||||
|
else:
|
||||||
|
s = smtplib.SMTP('smtp.adm.crans.org')
|
||||||
|
s.sendmail(emetteur, destinataires, mail.as_string())
|
||||||
|
s.quit()
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
print "Exemple d'utilisation :"
|
||||||
|
print ">>> import sendmail"
|
||||||
|
print '>>> sendmail.sendmail("passoire@crans.org", ["nobody@crans.org", "root@crans.org"], "[Test] Envoi de mail", "Ceci est un message envoyé par un script.\\n-- \\nsendmail.py")'
|
Loading…
Add table
Add a link
Reference in a new issue