11.10.2 Exemple SMTP

Cet exemple demande à l'utilisateur les adresses requises dans l'enveloppe du message (adresses `A' et `De'), et le message à envoyer. Notez que les en-têtes à adjoindre au message doivent être inclus dans le message comme ils sont entrés; cet exemple n'effectue aucun traitement des en-têtes RFC 822. En particulier, les adresses `A' et `De' doivent être inclus dans les en-têtes de messages explicitement.

import smtplib
import string


def prompt(prompt):
    return string.strip(raw_input(prompt))


expediteur = prompt("De: ")
destinataires  = string.split(prompt("A: "))
print "Entrez le message, terminez par ^D:"


# Ajoute les en-têtes De: et A: au début!
msg = ("From: %s\r\nTo: %s\r\n\r\n"
       % (fromaddr, string.join(toaddrs, ", ")))
while 1:
    ligne = raw_input()
    if not ligne:
        break
    msg = msg + ligne


print "La longueur du message est " + `len(msg)`


server = smtplib.SMTP('localhost')
server.set_debuglevel(1)
server.sendmail(expediteur, destinataires, msg)
server.quit()