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
    recherche "formulaire html python" sur google...
    http://www.siteduzero.com/tutoriel-3-39020-apercu-de-la-cgi-avec-python.html
    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
        Dans ton programme, on ne voit pas comment il récupère les valeurs de champ1 et 2 ...
        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
            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