Partage
  • Partager sur Facebook
  • Partager sur Twitter

entete de mail

gestion de l'adresse d'emission

Sujet résolu
    16 juillet 2013 à 13:33:33

    Salut 

    En ce moment je fais une appli en python qui a pour but de faire un joli dessin et de l'envoyer a quelqu'un par mail

     Pour ca je demande a l'utilisateur le mail du destinataire mais aussi le sien pour que ce soit le mail de l'utilisateur qui apparaisse aux yeux du destinataire.

    pour l'instant tout les mails partent d'une certaine adresse inamovible pour l'utilisateur. J'aimerais donc savoir ce qu'il faut faire pour que ce soit l'adresse entree par l'utilisateur comme etant la sienne qui soit vue du destinataire. (il me semble peu judicieux de demander a l'utilisateur d'entrer son mail son mot de passe et le serveur smtp qui convient pour etablir la connexion) 

    si vous avez une idee je suis preneur ^^

    Merci d'avance :)

    -
    Edité par mickaelwajnberg 16 juillet 2013 à 15:15:01

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      16 juillet 2013 à 15:03:47

      pour l'instant c'est en dur avec mon adresse mail etc et ca marche bien ! Maintenant j'aimerais pouvoir changer l'entete du message de telle sorte que le destinataire voie envoyé par le champs rentré par l'utilisateur

      Merci de te relire, c'est pas français, essai de te mettre à la place du lecteur...
      • Partager sur Facebook
      • Partager sur Twitter
        16 juillet 2013 à 15:15:57

        Et si tu nous montrais ton code, déjà ?

        • Partager sur Facebook
        • Partager sur Twitter
        Zeste de Savoir, le site qui en a dans le citron !
          16 juillet 2013 à 15:18:18

          desolé pour le charabia.... c'est vrai que parfois, quand on a son idée bien ancrée... on est le seul a en comprendre la forme verbalisée ><'
          • Partager sur Facebook
          • Partager sur Twitter
            16 juillet 2013 à 15:21:28

            def envoi(fichier1='sortie.png',fichier2='output.png',\
            subject='un petit souvenir de vacances',\
             destinataire=monmail):
                msg=MIMEMultipart('related')
            	msg['Subject']=subject
            	msg['From']=monmail
            	msg['To']=destinataire
            	msg.preamble = 'truccc'
            	png=open(fichier1, 'rb')
            	img1=MIMEImage(png.read())
            	png.close()
            	msg.attach(img1)
            	png2=open(fichier2, 'rb')
            	img2=MIMEImage(png2.read())
            	png2.close()
            	msg.attach(img2)
            	s=smtplib.SMTP()
            	s.connect('smtp.gmail.com')
            	s.ehlo()
            	s.starttls()
            	s.login(monmail, monmotdepasse)
            	s.sendmail(mon mail, mon mail, msg.as_string())
            	s.quit()

            -
            Edité par mickaelwajnberg 16 juillet 2013 à 15:23:03

            • Partager sur Facebook
            • Partager sur Twitter
              16 juillet 2013 à 15:25:16

              c'est la fonction pour envoyer le mail une fois les images stockées dans les fichiers 1 et 2

              pour l'instant elle est un peu bloquee pour ne pas prendre en compte l'adresse de l'emetteur je ne vois pas comment l'inclure

              • Partager sur Facebook
              • Partager sur Twitter
                16 juillet 2013 à 15:34:34

                Ça m'étonnerait que :

                1. Le code que tu viens de poster fonctionne, puisque même à l'œil nu je suis capable de te dire qu'il ne compile pas,
                2. Tu comprennes vraiment ce que tu fais parce que la solution est évidente.
                • Partager sur Facebook
                • Partager sur Twitter
                Zeste de Savoir, le site qui en a dans le citron !
                  16 juillet 2013 à 15:37:55

                  ba si, il fonctionne j'arrive a envoyer des mails avec les pieces jointes sans probleme! :)

                   pour moi la solution aurait ete de changer le from... mais ca marche pas ca garde mon mail quoi que j'y mette

                  et oui j'ai pas tout compris surtout au sendmail() 

                  :(

                  -
                  Edité par mickaelwajnberg 16 juillet 2013 à 15:42:51

                  • Partager sur Facebook
                  • Partager sur Twitter
                    16 juillet 2013 à 15:39:15

                    Et moi je te dis que c'est impossible que cette ligne compile en Python :

                       s.sendmail(mon mail, mon mail, msg.as_string())
                    

                    -
                    Edité par nohar 16 juillet 2013 à 15:49:02

                    • Partager sur Facebook
                    • Partager sur Twitter
                    Zeste de Savoir, le site qui en a dans le citron !
                      16 juillet 2013 à 15:51:25

                      ba je ne vois pas quoi te dire a part que si :(

                      (je te jure que c'est pas pour embeter le monde surtout que c'est la ou je ne comprends pas... mais le fait est que ca marche, j'arrive vraiment a recevoir tout comme il faut a n'importe quel destinataire si je touche pas l'emetteur) 

                      • Partager sur Facebook
                      • Partager sur Twitter
                        16 juillet 2013 à 15:55:22

                        meme que si je mets 

                        msg['From']='avoir@bidul.net'

                        et s.sendmail('avoir@bidul.net',destinataire, msg.as_string())

                        ba ca marche encore et ca envoie toujours le mail depuis monmail plutot que depuis avoir@bidul.net

                        • Partager sur Facebook
                        • Partager sur Twitter
                        Anonyme
                          16 juillet 2013 à 15:57:31

                          <tt class="descclassname">SMTP.</tt><tt class="descname">sendmail</tt><big>(</big>from_addr, to_addrs, msg)

                          D'après toi, c'est quoi :

                          • from_addr
                          • to_addrs
                          • msg

                          ???

                          Ensuite, regardes comment tu écris monmail dans ta fonction sendmail...

                          -
                          Edité par Anonyme 16 juillet 2013 à 15:59:19

                          • Partager sur Facebook
                          • Partager sur Twitter
                            16 juillet 2013 à 16:00:57

                            ba justement c'est ce que je ne comprends pas : pourquoi quelque soit l'adresse indiquee a from_addr je recois toujours mes mails depuis l'adresse marquee dans s.login

                            pour l'instant monmail n'est pas stocké dans une variable c'est vraiment ecrit a la main :/

                            -
                            Edité par mickaelwajnberg 16 juillet 2013 à 16:02:46

                            • Partager sur Facebook
                            • Partager sur Twitter
                            Anonyme
                              16 juillet 2013 à 16:03:06

                              monmail et mon mail, pour toi c'est la même chose?
                              • Partager sur Facebook
                              • Partager sur Twitter
                                16 juillet 2013 à 16:04:46

                                ca c'est juste quand j'ai fait un copié collé ici : il n'y a pas de monmail ou mon mail dans mon code (c'est vraiment ecrit directement)

                                desolé de la confusion 

                                -
                                Edité par mickaelwajnberg 16 juillet 2013 à 16:05:55

                                • Partager sur Facebook
                                • Partager sur Twitter
                                Anonyme
                                  16 juillet 2013 à 16:12:23

                                  Sinon dans la doc il y a un exemple...

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    16 juillet 2013 à 16:28:19

                                    par rapport a la doc (qui est la page a partir de laquelle "j'ai construit" -disons copié- mon code)

                                    a part

                                    s = smtplib.SMTP('localhost')

                                    remplacé par

                                    s=smtplib.SMTP()
                                    s.connect('smtp.gmail.com')
                                    s.ehlo()
                                    s.starttls()
                                    s.login(monmail,code)

                                    je vois pas de difference 

                                    :/

                                     j'ai retiré preamble pour etre vraiment tout pareil ... ca change rien

                                    -
                                    Edité par mickaelwajnberg 16 juillet 2013 à 16:28:58

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    Anonyme
                                      16 juillet 2013 à 17:06:12

                                      voilà un code qui doit fonctionner

                                      import smtplib
                                      from email.mime.text import MIMEText
                                      from email.mime.multipart import MIMEMultipart
                                      from email.mime.image import MIMEImage
                                      
                                      def send(From, To, subject, message, *png_files):
                                          msg = MIMEMultipart()
                                          msg['Subject'] = subject
                                          msg['From'] = From
                                          msg['To'] = To
                                          msg.preamble = 'truccc'
                                          
                                          text = MIMEText(message, 'plain')
                                          msg.attach(text)
                                      
                                          for file in png_files:
                                              fp = open(file, 'rb')
                                              img = MIMEImage(fp.read())
                                              fp.close()
                                              img.add_header('Content-Disposition','attachment; filename="%s"' %file)
                                              msg.attach(img)
                                          
                                          s = smtplib.SMTP()
                                          s.connect("myserver") # à modifier
                                          s.sendmail(From, To, msg.as_string())
                                      
                                      send("emetteur", "récepteur", "new_message", "ton message", "monimage1.png", "monimage2.png")
                                      



                                      -
                                      Edité par Anonyme 17 juillet 2013 à 11:41:58

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        17 juillet 2013 à 11:37:36

                                        j'essaye ca cet aprem, je suis pas avec mon ordi de bureau :) 

                                        Merci du coup de main :)

                                        Mais il y a quand meme quelquechose qui me taraude va-t-on dire : avec ca comment choisir le bon serveur ? je ne peux pas prevoir si l'utilisateur sera sous gmail yahoo hotmail ou autre non?

                                        -
                                        Edité par mickaelwajnberg 17 juillet 2013 à 11:58:45

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          17 juillet 2013 à 13:29:56

                                          bon en fait ce qui ne marchait pas c'est que ca ne passait pas avec gmail puis c'est tout :

                                          je poste mon code au cas ou qqn rencontre le meme pb (et la ca marche tout bon)

                                          def envoi(fichier1='sortie.png',fichier2='output.png',From="testFrom@bidule.net",subject='un petit souvenir de vacances', To='testTo@machin.net'):
                                          	msg=MIMEMultipart()
                                          	msg['Subject']=subject
                                          	msg['From']=From
                                          	msg['To']=To
                                          	
                                          	png=open(fichier1, 'rb')
                                          	img1=MIMEImage(png.read())
                                          	png.close()
                                          	msg.attach(img1)
                                          	png2=open(fichier2, 'rb')
                                          	img2=MIMEImage(png2.read())
                                          	png2.close()
                                          	msg.attach(img2)
                                          	s=smtplib.SMTP()
                                          	s.connect('auth.smtp.1and1.fr')#serveur pas gmail
                                          	s.ehlo()
                                          	s.starttls()
                                          	s.login(" la vraie adresse "," le vrai mot de passe")
                                          	s.sendmail(From,To, msg.as_string())
                                          	s.quit()

                                          Merci tout le monde :D

                                          -
                                          Edité par mickaelwajnberg 23 juillet 2013 à 10:03:41

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                          Anonyme
                                            17 juillet 2013 à 13:48:11

                                            "Mais il y a quand meme quelquechose qui me taraude va-t-on dire : avec ca comment choisir le bon serveur ? je ne peux pas prevoir si l'utilisateur sera sous gmail yahoo hotmail ou autre non?"

                                            Comment fais-tu sur outlook ou autre logiciel de messagerie pour indiquer le serveur sur lequel tu es?

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              18 juillet 2013 à 13:03:32

                                              Sa question est différente, je pense.

                                              Il se demande comment on peut modifier une adresse FROM de façon à ce qu'on puisse choisir le bon serveur SMTP en fonction de l'expéditeur : en fait la réponse c'est qu'il n'y a pas besoin d'envoyer un mail depuis un serveur précis pour que l'attribut FROM du mail soit correctement rempli (à part pour Gmail qui a visiblement rajouté une sécurité sur ses serveurs SMTP pour empêcher le spoofing).

                                              -
                                              Edité par nohar 18 juillet 2013 à 13:04:53

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                              Zeste de Savoir, le site qui en a dans le citron !
                                                23 juillet 2013 à 10:02:51

                                                oui c'est de ca dont je parlais :) 

                                                et encore oui gmail l'empeche

                                                • Partager sur Facebook
                                                • Partager sur Twitter

                                                entete de mail

                                                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                • Editeur
                                                • Markdown