Envoie mail python

Bonjour à tous,

Alors, voilà mon problème.
Après des recherches sur Internet, j'ai trouvé des scripts pour l'envoie de mail, mais à des destinataires définis dans le code.

Pour mon application Web, j'aimerais avoir un formulaire avec un champs Destinataire, Objet et Message.
Et ensuite, envoyer le mail à la ou les personne(s) définit dans le formulaire

Voilà quelques bouts de mon code :

templates
<form method="Post">
<p>Destinataire</p>
<input name="champ3" size="40" maxlength="100" type="texte" /></br>

.... avec le champ Objet du message nommé par champ1 et le message par champ2


Merci de votre aide.

6 réponses

  1. Contributeur
    type="texte"

    ca marcherait si html avait été rédigé en francais, mais en l'occurence, ce serait plutot
    type="text"

    Il faudrait voir la paartie python qui doit être plus interessante (laisse l'existant pour la récupération des variables car j'ai jamais fait de CGI python
    1. Voici ma partie Python présente dans mon views.py :

      class EnvoieMail:
          import sys
          import os
          from smtplib import SMTP
          from email.mime.multipart import MIMEMultipart
          from email.mime.base import MIMEBase
          from email.mime.text import MIMEText
          from email.utils import formatdate
          from email import Encoders
      
          def send_email(senf_from, send_to, subject, files=[], server="localhost"
              assert types(sent_to)==list
              assert types(files)==list
              msg = MIMEMultipart()
              msg['From'] = send_from
              msg['To'] = COMMASPACE.join(send_to)
              msg['Date'] = formatdate(localtime=True)
              msg['Subject'] = subject
      
              for f in files:
                  part = MIMEBase('application', "octet-stream")
                  print f
                  part.set_playload(open(f,"rb").read())
                  Encoders.encode_base64(part)
                  part.add_header('Content_Disposition', 'attachement filename="%s' %os.path.basename(f))
                  
              msg.attach(part)
      
              smtp = smtplib.SMTP(server)
              smtp.sendmail(senf_from, send_to, msg.as_string())
              smtp.close()
      
              retour = "Une erreur s'est produite lors de l'envoie de mail"
              files = ["monfichier1", "chemin du fichier']
              destinataires = [ 'liste des destinataires' ]
      
              try:
                  send_mail('expediteur@monsite.com', 'destinataire', "Sujet du mail",  "Texte du message", files, 'smtp.free.fr')
              except:
                  send_mail('expediteur@monsite.com', [ 'adresse@secours.fr' ], "[ERROR ] Sujet du message", retour, [], 'smtp.free.fr')


      J'avais oublié de dire que les pièces jointes doivent être gérées
      1. Contributeur
        Dans ton programme, on ne voit pas comment il récupère les valeurs de champ1 et 2 ...
        1. Si quelqu'un sait comment récupérer les champs, j'aimerais qu'il m'éclaire sur ce sujet.
          Mon application est quasi terminé, il me reste ces quelques points à traiter.

          Donc, comment récupérer mes champs1, 2 et 3 de mon formulaire et où les placer dans mon code Python pour que mon fonction d'envoi mail fonctionne...

          Merci beaucoup
          1. Contributeur
            recherche "formulaire html python" sur google...
            http://www.siteduzero.com/tutoriel-3-39020-apercu-de-la-cgi-avec-python.html