IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Méthode POST dans un mail ne fonctionne pas ?


Sujet :

Langage PHP

  1. #1
    Membre du Club

    Profil pro
    Inscrit en
    Juin 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 40
    Points : 68
    Points
    68
    Par défaut Méthode POST dans un mail ne fonctionne pas ?
    Bonjour,

    J'envoie automatiquement par mail un bulletin régulièrement à des abonnés dont le corps du message est au format HTML.
    Celui est généré par un script PHP.
    A la fin du courriel, comme habituellement j'ai un : "Pour se désabonner clique ici".
    J'ai d'abord essayé une méthode avec un envoi de courriel par un mailto, mais il faut traiter les demandes à la main.
    Je test actuellement avec un form, mais la méthode POST ne fonctionne pas apparemment et la méthode GET a l'inconvénient de montrer les données courriel, nom, prénom...
    Pourquoi la méthode POST ne fonctionne pas ? Avez-vous une méthode ?
    Par exemple celle de la newsletter de developper.com

    Merci

    PS : En passant la newsletter de developper.com est un peu expéditive. Il n'est pas demandé de confirmation !

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu n'as pas besoin de mettre toutes les informations de l'utilisateur de le lien GET.
    Sinon quand même, l'utilisateur connait son nom et son prénom, ce n'est pas un drame qu'il les voit dans le lien.

  3. #3
    Membre du Club

    Profil pro
    Inscrit en
    Juin 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 40
    Points : 68
    Points
    68
    Par défaut
    Merci de ta réponse.

    Oui, je pense bien qu'il ne faut pas envoyer toutes les données via le GET, mais seulement l'adresse mail par exemple.
    Mais admettons que mon script de désabonnement s'appelle desabo.php l'appel va se faire www......./desabo.ph?mail=xxxx@orange.fr.
    Donc un plaisantin peut désabonner quelqu'un d'autre pour peu qu'il connaisse son adresse, surtout s'il n'y a pas de confirmation.
    Bon en même je ne suis pas "développez.com" et il n'y a pas des milliers d'abonnés à mon bulletin, mais autant faire les choses proprement il me semble.
    Une méthode serait peut-être d'attribuer un code à chaque utilisateur ( 8 caractères par ex) et seul ce code passerait en GET.

    Au fait, pourquoi la méthode POST ne fonctionne pas dans ce cas. J'aimerais bien comprendre pourquoi.

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    la technique du token est sans doute la meilleure : tu peux même mettre l'adresse mail et le token comme paramètres et ajouter une condition qui vérifie que le token et l'adresse mail correspondent au même user.

  5. #5
    Membre du Club

    Profil pro
    Inscrit en
    Juin 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 40
    Points : 68
    Points
    68
    Par défaut
    Voilà la solution que j'ai adoptée :
    - à l'inscription de l'abonné je lui attribue, dans la BDD, un champs, appelons-le ref, qui est une suite de 10 caractères aléatoires (26^10 possibilités),
    - lors de l'envoi du bulletin par mail, je transmets à chaque utilisateur son ref (dans un input type="hidden" ),
    - quand l'utilisateur clique sur le lien du script de désabonnement, seul ref est envoyé en GET. Ce ref n'est évidemment pas invisible, mais il ne peut être connu que du lecteur du mail en regardant en bas de l'écran s'il passe la souris sur le lien (ou de celui qui regarde par dessus son épaule ).
    Je pense avoir résolu le problème pour une protection moyenne.
    Cela revient à donner un token préétabli, ce n'est pas aussi strict, mais ce n'est déjà pas mal.

    Je n'ai toujours pas de réponse à "pourquoi la méthode POST ne fonctionne pas dans ce cas "?

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il est très possible que le logiciel/site de messagerie n'autorise pas les formulaires.

  7. #7
    Membre du Club

    Profil pro
    Inscrit en
    Juin 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 40
    Points : 68
    Points
    68
    Par défaut
    Je me rends compte aux réponses des amis qui testent mon projet, la très grande variété de comportement des logiciels de messagerie quant à leur interprétation du HTML.
    Même de simples basiques ne réagissent pas de la même façon.
    Quant au formulaire autorisé ou pas :
    Ma première version était un formulaire avec méthode POST, cela ne fonctionnait pas avec Windows Live Mail. J'ai conservé le form mais avec GET et cela fonctionnait bien. Par contre un ami qui lit avec Outlook 2007, cela ne fonctionnait pas.
    Donc je me suis rabattu sur un lien simple < a href =htpp://www.monsite.fr/monscript.php?ref=xxxxxx> et cela fonctionne bien.
    En tous les cas, c'est galère de faire du HTML dans un mail. Je n'ai pas trouvé de discussion qui traitait de ce sujet dans le forum. Peut-être n'ai-je pas bien cherché ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 10
    Dernier message: 08/01/2007, 14h26
  2. [Mail] mail() ne fonctionne pas
    Par hawk² dans le forum Langage
    Réponses: 7
    Dernier message: 03/01/2007, 13h30
  3. [Mail] fonction mail qui fonctionne pas
    Par digger dans le forum Langage
    Réponses: 3
    Dernier message: 31/08/2006, 22h28
  4. [Mail] Pb avec la méthode post dans un mail
    Par viny dans le forum Langage
    Réponses: 3
    Dernier message: 18/08/2006, 11h59
  5. Réponses: 3
    Dernier message: 26/01/2006, 13h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo