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 :

[Mail] Newsletter et retraitement des retours


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de djedje37et28
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 224
    Points : 84
    Points
    84
    Par défaut [Mail] Newsletter et retraitement des retours
    bonjour, j'aurai besoin de quelques lumières pour un script de newsletter que je réalise.
    entrons dans le vif du sujet
    Concrètement, la personne entre son adresse e-mail et valide.
    elle recoit un email de confirmation.
    A ce moment là, il est possible de valider l'inscription par un lien( chose la plus courante sur les sites), mais j'aimerai plutôt que la personne fasse répondre et reenvoye le mail sur une adresse définie.
    Pour cela, il faut je pense que je récupere l'email de cette personne recu par email à mon adresse et que le compare dans la base de donnée avec celui rempli au début.
    Si ils sont identiques, le statut passe de 'attente' à 'valide'.
    Tout ceci est théorique, malheureusement je vois pas comment traiter un email que je recevrai avec php.
    avez vous des pistes ?

    je pensai même utiliser ce mode de fonctionnement en allant aussi voir les mailer daemon et leur message( boîte pleine, boîte non valide....) pour pouvoir retraiter directement le fichier plutôt que de traiter à la main les messages d'erreurs.

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Bonjour à toi

    Pourquoi n'envoie tu pas un mail avec un lien vers une page de ton site ou l'utilisateur doit rentrer son adresse? et tu valide sous php

  3. #3
    Membre régulier Avatar de djedje37et28
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 224
    Points : 84
    Points
    84
    Par défaut
    mchev, je voulais faire ca pour éviter de perdre des internautes qui sont pas très calés en informatique
    mais c'est vrai que je pouvais m'en passer.
    par contre, pour le retraitement des erreurs, c'est quasi obligatoire: quand t as plus de 15000 mails, si j ai 5% d'erreurs ca fais 750 messages a retraiter a chaque fois. Même si j exagère un peu, j espère pas autant d'adresse fausse ou pleine....
    bref dans ce cas la, ca deviendrait ingérable.

  4. #4
    Membre régulier Avatar de djedje37et28
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 224
    Points : 84
    Points
    84
    Par défaut
    Après en avoir parler avec un collègue, je me demandais comment vous faisiez pour traiter les mailer daemon dans le cadre d'email en masse:
    pour valider une inscription sur la plupart des sites comme le justifiait mchev,
    vous faites des liens à valider.
    mais comment traiter vous vos mailer daemon ?
    je ne vois que cette technique à savoir traiter par l'intermédiaire d'un client de message imap.
    voyez vous d autres techniques ?
    merci
    jérôme

  5. #5
    Membre régulier Avatar de djedje37et28
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 224
    Points : 84
    Points
    84
    Par défaut
    rebonjour,
    je viens de me mettre sur l'affichage de nouveaux mails via un script php.
    j'ai essayé de reproduire l'étape un en affichant juste l'email mais ca me renvoye rien du tout ( page blanche).
    pensez vous qu 'il y a une erreur dans mon script ?
    de plus,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $protocole = "/pop3/notls";
    est il un parametre fixe:
    a quoi correspond t il ?
    merci


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    <?php 
     
    // définition du compte pop qui va chercher les messages
    $boite = "INBOX";
    $serveur_entrant = "serveur";
    $port = ":110";
    $protocole = "/pop3/notls";
    $identifiant = "mon mail";
    $mot_de_passe = "pass";
     
    if ($mail_cnx = imap_open ("{".$serveur_entrant.$port.$protocole."}".$boite, $identifiant, $mot_de_passe) )
     {
      $nbr_mails = imap_num_msg($mail_cnx);
      // ajout de fonctionnalité mime
    require_once("Mail/mimeDecode.php");
    $mimeParams = array();
    $mimeParams['decode_headers'] = true;
    $mimeParams['crlf'] = "\r\n";
    $mimeParams['include_bodies'] = true;
    $mimeParams['decode_bodies'] = true;
       //affichage des emails
      if ($nbr_mails == 0)
       {
        echo "Pas de nouveau mail<br />\n";
       }
      else 
       {
         for ($i = 1; $i <= $nbr_mails; $i++) 
    	 {
          $header = imap_fetchheader($mail_cnx, $i, FT_PREFETCHTEXT);
          $body = imap_body($mail_cnx, $i, FT_PEEK);
          $mimeParams['input'] = $header.$body;
          $message = Mail_mimeDecode::decode($mimeParams);
    	  $body = trim($message->body);
          $body = substr($body, 0, 2048).'...';
          $body = nl2br($body);?>
    	  <tr>
            <td><?php =$message->headers['date'];?></td>
            <td><?php =$message->headers['from'];?></td>
            <td><?php =$message->headers['subject'];?></td>
          </tr> 
          <tr>
            <td  colspan="3"><?php =$body;?></td>
          </tr>
    <?php }
         }	 
     } 
    else 
     {
      ?>
    erreur de connexion 
    <?php 
      }
      imap_close($mail_cnx); 
    ?>

  6. #6
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 395
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 395
    Points : 15 751
    Points
    15 751
    Par défaut
    Citation Envoyé par djedje37et28
    mchev, je voulais faire ca pour éviter de perdre des internautes qui sont pas très calés en informatique
    il n'y rien de plus simple qu'un e-mail avec un lien à cliquer à l'interieur
    tous les plus gros sites professionnels font ça

  7. #7
    Membre régulier Avatar de djedje37et28
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 224
    Points : 84
    Points
    84
    Par défaut
    je suis tout à fais d'accord avec toi mathieu mais comment ferais tu alors le retraitement des mails qui n'arrivent pas aux destinataires quand tu envoyes une newsletter ?
    on est bien obligé de passer par cette méthode si on veut pas avoir à retraiter un à un les messages d'erreurs du type: boîte pleine, boîte invalide...
    tu as une autre piste ???

  8. #8
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 395
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 395
    Points : 15 751
    Points
    15 751
    Par défaut
    Citation Envoyé par djedje37et28
    on est bien obligé de passer par cette méthode si on veut pas avoir à retraiter un à un les messages d'erreurs du type: boîte pleine, boîte invalide...
    dans ces cas les personnes ne peuvent pas cliquer sur le lien de l'e-mail, et donc le compte ne peut pas être validé donc il n'y a rien à traiter spécialement

  9. #9
    Membre régulier Avatar de djedje37et28
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 224
    Points : 84
    Points
    84
    Par défaut
    c'est vrai que vu comme ca c est plus simple.
    tu geres donc tout les problèmes manuellement.
    ta solution est idéale mais mon responsable m'a dit qu il y a avait un taux de non distribution d'emails d environ 9%( taux de retour d'email)
    c est pourquoi je me pose des le debut cette question car j'ai pas envie de retraiter 9% de 30000 mails envoyé.
    les 9% ca doit etre dans le cas d un fichier acheté.
    saurais tu par hasard le taux dans le cadre d'une démarche avec validation simple par click?
    merci dans tout les cas de tes réponses, ca m'aide bcp dans ma démarche

  10. #10
    Membre régulier Avatar de djedje37et28
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 224
    Points : 84
    Points
    84
    Par défaut
    encore moi!!
    j'ai une petite question concernant l'extension mimedecode.php de PEAR:
    j'ai réussi à récuperer des emails avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?=$message->headers['from'];?>
    le problème c'est qu'il m'affiche pas le mail tout le tps car j'ai essayé sur windows live messenger et je recois mon pseudo et non le mail.
    je pense donc qu il doit exister une chose équivalente pour récuperer le mail:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?=$message->headers['mail'];?>
    j'ai regardé dans mimedecode.php mais j'ai pas trouvé.
    quelqu un aurait une idée???
    merci

  11. #11
    Membre régulier Avatar de djedje37et28
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 224
    Points : 84
    Points
    84
    Par défaut
    en faites j'ai remarqué que dans mon code html que j'avais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td>"djedaivil" <jfdfdfd@free.fr></td></tr>
    y a t il moyen de récuperer ce qu'il y a entre les balises <>
    ???
    merci

  12. #12
    Membre régulier Avatar de djedje37et28
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 224
    Points : 84
    Points
    84
    Par défaut
    j'ai réussi en partie en utilisant ereg:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $mail= $message->headers['from']; 
    	  $mail1=ereg_replace("<","",$mail);
    	  $mail2=ereg_replace(">","",$mail1);
    	  echo $mail2;
    ca m'affiche maintenant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     djedje dje@aol.com
                                     dfdfd   dab@aol.com
    je pense que c est pas viable car suivant les messageries j aurais peut etre
    donc je pense qu il faut que j arrive a recuperer directement ce qu il y a entre les
    du genre: donne quelle fonction utilisé ?
    merci

  13. #13
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 395
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 395
    Points : 15 751
    Points
    15 751
    Par défaut
    tu peux utiliser une expression régulière avec un masque dans le genre "<(.*?)>"

    http://g-rossolini.developpez.com/tu...ns-regulieres/

  14. #14
    Membre régulier Avatar de djedje37et28
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 224
    Points : 84
    Points
    84
    Par défaut
    j'ai en parti réussi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $mail= $message->headers['from']; 
    	  $mail1=ereg_replace("<","",$mail);
    	  $mail2=ereg_replace(">","",$mail1);
    	  echo $mail2;
    	  preg_match("![A-Z0-9]{1,}@[A-Z0-9]{1,}[.]{1}[0-9A-Z]{1,3}!i",$mail2,$mail3);
    	  echo $mail3[0];
    ca ne marche seulement pas quand j ai par exemple:
    "djedai" jf@champ-menui.com
    je vais y arriver!

  15. #15
    Membre régulier Avatar de djedje37et28
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 224
    Points : 84
    Points
    84
    Par défaut
    j'ai essayé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     $mail= $message->headers['from']; 
    preg_match("<(.*?)>",$mail,$mail1);
    	  echo $mail1[0];
    mais ca me renvoye rien.

  16. #16
    Membre régulier Avatar de djedje37et28
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 224
    Points : 84
    Points
    84
    Par défaut
    j'ai trouvé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $mail= $message->headers['from']; 
    	  $mail1=ereg_replace("<","",$mail);
    	  $mail2=ereg_replace(">","",$mail1);
    	  preg_match("![A-Z0-9]{1,}@[A-Z0-9-]{1,}[.]{1}[0-9A-Z]{1,3}!i",$mail2,$mail3);
    	  echo $mail3[0];
    merci encore mathieu

  17. #17
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 164
    Points : 303
    Points
    303
    Par défaut
    Voilà la solution ultime!

    http://www.phpclasses.org/browse/package/2691.html


    Une classe php qui parse les messages mailer daemon et qui retourne l'adresse du destinataire, l'action (ex : failed) et le status (ex : 5.0.0 (permanent failure) ).

    Tout ça à partir d'un fichier .eml

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 16/09/2008, 19h09
  2. [9i][OEM] Retrait des registres en attente
    Par Débéa dans le forum Entreprise Manager
    Réponses: 9
    Dernier message: 18/01/2006, 14h19
  3. [Mail] newsletter, envoi de mail par lot
    Par jexl dans le forum Langage
    Réponses: 9
    Dernier message: 08/09/2005, 16h44
  4. [XSLT] Suppression des retours charriots
    Par Hoegaarden dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 17/08/2005, 16h51
  5. Utiliser awk pour supprimer des retours charrios
    Par tomsoyer dans le forum Linux
    Réponses: 3
    Dernier message: 03/01/2005, 18h27

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