6.15. Sending e-mail

6.15.1 SendMail()

Karrigell fournit une classe, SendMail(), vous permettant de facilement envoyer des e-mails.

Utilisation de SendMail() :
import k_email
msg = k_email.SendMail(u"Sujet de ce message", 'smtp.server.com')



Les paramètres de SendMail() sont :
  • subject : Sujet du message.
  • smtp_server : Nom du serveur SMTP utilisé pour envoyer le message.

6.15.2 set_from()

La méthode set_from(), permet de definir le champ "De" du message.

Utilisation de set_from() :
msg.set_from("Pierre", "pierre.quentel@wanadoo.fr")


Les paramètres de set_from() sont :
  • name : Nom "en clair". Si vous ne voulez pas spécifier de nom, cette chaine doit être vide.
  • address : Adresse e-mail (utilisée quand le destinataire clique "répondre" si le champ "reply to" n'est pas spécifié)

6.15.3 set_reply_to()

La méthode set_reply_to(), vous permet de spécifier le champ "répondre à" du message.

Utilisation de set_reply_to() :
msg.set_reply_to("Pierre", "pierre.quentel@wanadoo.fr")


Les paramètres de set_reply_to() sont :
  • name : Nom "en clair". Si vous ne voulez pas spécifier de nom, cette chaine doit être vide.
  • address : Adresse e-mail utilisée pour envoyer la réponse.
Si le champ "reply_to" n'est pas spécifié, le champ "from" sera utilisé pour envoyer la réponse.

6.15.4 set_message()

La méthode set_message(), Vous permet de spécifier le contenu du corps du message.

Utilisation de set_message() :
msg.set_message("Contenu du message.")


Le paramètre de set_message() est :
  • text : Contenu du corps du message.

6.15.5 add_recipient()

La méthode add_recipient(), vous permet d'ajouter un destinataire.

Utilisation de add_recipient() :
msg.add_recipient("Paul", "Paul@wanadoo.fr")
msg.add_recipient("Paulette", "Paulette@wanado.fr", cc=True)



Les paramètres de add_recipient() sont :
  • name : Nom "en clair" du destinataire. Si vous ne voulez pas spécifier de nom, cette chaine doit être vide.
  • address : Adresse e-mail du destinataire.
  • add_to_header : Si True, name et address sont ajoutés à la liste "Pour" des destinataires (Valeur par défaut = True).
  • add_to_smtp : Si True, address est ajoutée à la liste des destinataires du serveur SMTP(Value par défaut = True).
  • cc : Si True, name et address sont ajoutés à la liste "copie à" des destinataires (Value par défaut = False).
Seules les adresses ajoutées à la liste des destinataires du serveur SMTP recevront le message.
Cela permet d'envoyer un message à une liste de destinaires sans révéler le contenu de cette liste aux destinataires :
msg.add_recipient("My mailing list", '', True, False) # Ajoute le nom du destinaire (affiché dans le gestionnaire d'e-mails)
msg.add_recipient("", "Paul@wanado.fr", False, True) # Ajoute l'adresse à la liste des destinataires du serveur SMTP (pas affiché dans le gestionnaire d'e-mails)
msg.add_recipient("", "Paulette@wanado.fr", False, True) # Ajoute l'adresse à la liste des destinataires du serveur SMTP (pas affiché dans le gestionnaire d'e-mails)
msg.add_recipient("", "Paulo@wanado.fr", False, True) # Ajoute l'adresse à la liste des destinataires du serveur SMTP (pas affiché dans le gestionnaire d'e-mails)


6.15.6 add_attachment()

La méthode add_attachment(), ajoute un fichier attaché au message.

Utilisation de add_attachment() :
msg.add_attachment("Mon fichier.pdf")


Le paramètre de add_attachment() est :
  • fileName : Nom du fichier à joindre.

6.15.7 set_smtp_username_and_password()

La méthode set_smtp_username_and_password(), permet de définir le nom d'utilisateur ainsi que le mot de passe permettant d'accéder au serveur SMTP.

Utilisation de set_smtp_username_and_password() :
msg.set_smtp_username_and_password(smtp_user_name, smtp_password)


Les paramètres de set_smtp_username_and_password() sont :
  • smtp_user_name : Nom d'utilisateur du serveur SMTP.
  • smtp_password : Mot de passe associé au nom d'utilisateur.
L'appel à cette méthode n'est pas obligatoire. Vous devez appeler set_smtp_username_and_password() seulement si le serveur SMTP que vous utilisez demande une authentification.

6.15.8 send()

La méthode send(), envoie le message à tous les destinataires qui se trouvent dans la liste des destinataires du serveur SMTP.

Utilisation de send() :
msg.send()

6.15.9 Divers

Voici une liste de méthodes qui peuvent être utiles :
  • set_subject() : Change le sujet du message.
  • message_prepend() : Ajoute du texte au début du message.
  • message_append() : Ajoute du texte à la fin du message.
  • message_prepend_file() : Ajoute le contenu d'un fichier texte au début du message.
  • message_append_file() : Ajoute le contenu d'un fichier texte à la fin du message.
  • clear_recipients() : Vide la liste des destinataires.
  • clear_attachments() : Vide la liste des fichiers attachés.
  • set_smtp_server() : Change l'addresse du serveur SMTP.

6.15.10 Examples

Dans l'exemple suivant, un message est envoyé à 4 destinataires. Un destinataire est en copie ('cc'). Un autre destinataire n'a pas de nom en clair, seule son adresse est connue. 2 fichiers sont attachés au message.

import k_email
msg = k_email.SendMail(u"Subject of this message", 'smtp.server.com')
msg.set_from (u"Karrigell WEB site", '')
msg.set_message('Bonjour')
msg.set_reply_to(u"karrigell group", 'karrigell@googlegroups.com') # Pas obligatoire
msg.add_recipient(u'destinataire 1', 'recipient1@server1.com')
msg.add_recipient(u'destinataire 2', 'recipient2@server2.com')
msg.add_recipient(u'', 'recipient3@server3.com')
msg.add_recipient(u'destinataire 4', 'recipient4@server4.com', cc=True) # Pas obligatoire
msg.add_attachment ("Caracteres ASCII.pdf") # Not mandatory
msg.add_attachment (u"caractères UNICODE.pdf") # Not mandatory
msg.send()

Dans l'exemple suivant, un message est envoyé à 3 destnataires. Tous les destinataires verront 'Liste de diffusion' en tant qu'expéditeur et 'Liste Karrigell' en tant que destinataire.

import k_email
msg = k_email.SendMail(u"Subjet du message", 'smtp.server.com')
msg.set_from (u"Liste de diffusion", '')
msg.set_message('Bonjour à la liste')
msg.set_reply_to(u"Liste de diffusion", 'list@server.com')
msg.add_recipient(u'Liste Karrigell', '', True, False)
msg.add_recipient(u'', 'recipient1@server1.com', False, True)
msg.add_recipient(u'', 'recipient2@server2.com', False, True)
msg.add_recipient(u'', 'recipient3@server3.com', False, True)
msg.send()