Advertisement:

Author Topic: intégration enregistrement mail dans mailing list OVH  (Read 25558 times)

Offline bazo

  • Semi-Newbie
  • *
  • Posts: 91
  • Gender: Male
    • LE site des bons plans, réunions de consommateurs...
intégration enregistrement mail dans mailing list OVH
« on: March 27, 2010, 06:26:53 AM »
Bonjour, j'ai actuellement un petit forum d'environ 7000 membres et j'aimerais commencer à faire des newsletters. En ayant testé auparavant le système interne de SMF le système plante car trop de mails je pense mais de toute façon ce n'est pas pratique.

Je me suis tourné vers le système de mailing list d'OVH, le problème est que je dois intégrer manuellement les mails dans la mailing list donc pas pratique du tout.

J'ai trouvé un script qui est décrit ici : http://forums.ovh.net/showpost.php?p=97125&postcount=22 , j'ai réussi à l'adapter et à le faire fonctionner. J'ai tenté d'intégrer dans le fichier register.template.php le bout de code

Code: [Select]
<form action="newsletter.php" method="post">
<input type="text" name="destination" size="30" id="lettreinfo" value="adresse e-mail"><br />
<input type="radio" name="action" value="inscription" checked="checked" />Sabonner<br />
<input type="radio" name="action" value="desinscription" />Se désabonner<br />
<input type="submit" value="Envoyer" />
</form> 

il s'affiche au bon endroit mais par contre ce n'est pas fonctionne et ça bloque même l'inscription au forum.

La meilleure méthode qui soit serait d'intégrer ce bout de code dans l'inscription et de valider en même temps l'inscription au forum et l'intégration à la base de données de la mailing list en cliquant sur le bouton final.

Si vous avez des pistes merci d'avance.

P.S : Pièce jointe le fichier register.template.php modifié à partir de la ligne 130.

Offline bazo

  • Semi-Newbie
  • *
  • Posts: 91
  • Gender: Male
    • LE site des bons plans, réunions de consommateurs...
Re: intégration enregistrement mail dans mailing list OVH
« Reply #1 on: March 27, 2010, 09:14:21 AM »
J'ai installé un nouveau forum de test ici : http://www.consommateur-gagnant.fr/testforum

Offline bazo

  • Semi-Newbie
  • *
  • Posts: 91
  • Gender: Male
    • LE site des bons plans, réunions de consommateurs...
Re: intégration enregistrement mail dans mailing list OVH
« Reply #2 on: March 27, 2010, 08:39:39 PM »
Bon en fouillant un peu beaucoup j'ai trouvé le bout de code qui permet l'envoi du formulaire :

Code: [Select]
<form action="', $scripturl, '?action=register2" method="post" accept-charset="', $context['character_set'], '" name="creator" id="creator" onsubmit="return verifyAgree();">

du coup j'ai rajouté l'action d'envoyer à la newsletter mais biensur ça plante , voici le code modifié :
Code: [Select]
<form action="./newsletter.php" action="', $scripturl, '?action=register2" method="post" accept-charset="', $context['character_set'], '" name="creator" id="creator" onsubmit="return verifyAgree();">

La première action fonctionne bien mais du coup la 2ème n'est pas effectuée et c'est un peu la plus importante.  :)

Encore une fois si vous avez des pistes....

Offline Robin-d

  • Jr. Member
  • **
  • Posts: 230
    • Educateur Sportif Vercors
Re: intégration enregistrement mail dans mailing list OVH
« Reply #3 on: March 28, 2010, 03:36:49 AM »
Ce que tu fais et carrément impossible  :o

Tu as deux solutions :
-Tu fais une exportation en csv tout les mois et tu dois surement avoir une fonction pour uploader un fichier dans ton truc OVH.
-Tu colles ici le code de ton newsletter.php, on l'adapte et on te dit ou le mettre ;)

Offline bazo

  • Semi-Newbie
  • *
  • Posts: 91
  • Gender: Male
    • LE site des bons plans, réunions de consommateurs...
Re: intégration enregistrement mail dans mailing list OVH
« Reply #4 on: March 28, 2010, 06:20:22 AM »
Bonjour pour la première solution que tu parles c'est ce que je faisais avant et franchement c'est galère au bout d'un moment. Pour la 2ème solution j'ai donné le lien vers le script dans le premier post : http://forums.ovh.net/showpost.php?p=97125&postcount=22

Offline Robin-d

  • Jr. Member
  • **
  • Posts: 230
    • Educateur Sportif Vercors
Re: intégration enregistrement mail dans mailing list OVH
« Reply #5 on: March 28, 2010, 08:36:27 AM »
Code: [Select]
// Identifiants: NIC-HANDLE et mot de passe OVH
$nic = "XXXXX-ovh" ;
$pass = "motdepasse" ;
// Le nom de domaine et le nom de la mailing list
$domain = "domaine.tld" ;
$ml = "nom-de-la-mailinglist" ;
// -------------------- Fin des parametres.

$mail = $context['member_id'];
$ssid = ovh ( "Login" , array ( "nic" => $nic , "password" => $pass ) ) or die ( $ovh_status ) ;
    $ssid = $ssid["value"] ;
    $result = ovh ( "MailingListSub" , $ssid , array ( "domain" => $domain , "ml" => $ml , "email" => $mail) ) or die ( $ovh_status ) ;
    // Envoi par mail et affichage d'un message de confirmation
    $headers = "Reply-To: $mlunsub\n";
    mail($mail, "[$ml] Inscription", "Merci de vous etre inscrit a la lettre d'information $ml.\n S'il s'agit d'une erreur, envoyez une simple reponse a ce message a l'adresse \n$mlunsub\n Inutile de recopier l'adresse, cliquer sur le bouton Repondre de votre logiciel de messagerie devrait suffir. Vous recevrez un message de confirmation.\n Pour obtenir de l'aide, ecrivez a: $mlhelp\n Pour lire la FAQ, ecrivez a: $mlfaq\n Merci.", $headers); ?>

Tout est ci-dessus, tu dois ajouter ce code dans le fichier qui traite l'inscription (sources/register.php)

Offline DeathSign

  • Local Moderator
  • Sr. Member
  • *
  • Posts: 854
  • Gender: Male
  • Net Engineer
Re: intégration enregistrement mail dans mailing list OVH
« Reply #6 on: March 28, 2010, 09:01:52 AM »
Tout est ci-dessus, tu dois ajouter ce code dans le fichier qui traite l'inscription (sources/register.php)
Oui si on suit le code qui a été donné sauf qu'envoyer un mail après l'ajout n'est sûrement pas nécessaire (donc supprimer les deux dernières lignes). Attention si vous souhaitez conserver ces lignes de renseigner $mlunsub, $mlhelp, et $mlfaq (cf. script original).

Au niveau code HTML du formulaire que tu as tenté de modifier, tu ne peux mettre qu'un attribut "action". Si tu veux faire deux actions tu peux utiliser du Javascript (plutôt Ajax) en modifiant l'événement "onsubmit" ou alors (la solution préconisée ici que je conseillerais) de l'intégrer dans la page appelée par action qui est ici Register.php

Dans tous les cas, ajouter l'adresse email à ta mailing list dès l'inscription peut-être bien mais il faut prévoir le cas où cette adresse est changée (volonté du membre d'en utiliser une autre, correction d'adresse invalide).

Amicalement,
DeathSign

Offline bazo

  • Semi-Newbie
  • *
  • Posts: 91
  • Gender: Male
    • LE site des bons plans, réunions de consommateurs...
Re: intégration enregistrement mail dans mailing list OVH
« Reply #7 on: March 28, 2010, 01:48:59 PM »
Bon je vais essayer de mettre le code dans le register mais il fait appelle de base à lib.php normalement.

Offline bazo

  • Semi-Newbie
  • *
  • Posts: 91
  • Gender: Male
    • LE site des bons plans, réunions de consommateurs...
Re: intégration enregistrement mail dans mailing list OVH
« Reply #8 on: March 28, 2010, 03:15:36 PM »
ppppffff plus ça va plus je me dis que je suis vraiment une brique en PHP, bon j'ai mis en pièce jointe les fichiers register et register.template. Car j'ai ajouté presque tout le code de la page newsletter à la fin du fichier register et bingo une erreur

Code: [Select]
: Undefined index: destination
Fichier: /homez.116/consommaq/www/testforum/Sources/Register.php
Ligne: 600


du coup dans le fichier register j'ai rajouté du code à la ligne 273 mais toujours l'erreur, pourtant l'input qui appelle le mail de la personne est bien dans le fichier register.template.

Offline bazo

  • Semi-Newbie
  • *
  • Posts: 91
  • Gender: Male
    • LE site des bons plans, réunions de consommateurs...
Re: intégration enregistrement mail dans mailing list OVH
« Reply #9 on: March 28, 2010, 04:46:49 PM »
J'ai réussi ça supprimer les erreurs mais toujours aucune inscription possible, si j'enlève tous les codes rajoutés l'inscription fonctionne, c'est quand même bizarre que de rajouter du code ça fasse tout planter.

Je remets en PJ les fichiers encore modifiés

Offline Robin-d

  • Jr. Member
  • **
  • Posts: 230
    • Educateur Sportif Vercors
Re: intégration enregistrement mail dans mailing list OVH
« Reply #10 on: March 29, 2010, 12:50:01 AM »
Il faut que tu les installes à un endroit précis ! Pas au début ou à la fin du fichier mais près de la requête mysql qui enregistre les membres (vers les lignes 400 je crois).

Offline bazo

  • Semi-Newbie
  • *
  • Posts: 91
  • Gender: Male
    • LE site des bons plans, réunions de consommateurs...
Re: intégration enregistrement mail dans mailing list OVH
« Reply #11 on: March 29, 2010, 05:31:16 AM »
J'ai baladé le script suivant
Code: [Select]
include ( "./lib.php" ) ;
$nic = "x" ;
$pass = "x" ;
$domain = "x" ;
$ml = "x" ;


// Vous devez personnaliser les adresses subcribe, unsubscribe, help et faq.
    $mlsub = "$ml-subscribe@$domain";
    $mlunsub = "$ml-unsubscribe@$domain";
    $mlhelp = "$ml-help@$domain";
    $mlfaq = "$ml-faq@$domain";

if(isset($_POST['emailbis']))$mail=$_POST['emailbis'];


// -------------------- Inscription
else {
    if(isset($_POST['action']) == "inscription") {
    // Ouverture de la session, recuperation de l'ID et inscription a la mailing list
    $ssid = ovh ( "Login" , array ( "nic" => $nic , "password" => $pass ) ) or die ( $ovh_status ) ;
    $ssid = $ssid["value"] ;
    $result = ovh ( "MailingListSub" , $ssid , array ( "domain" => $domain , "ml" => $ml , "email" => $mail) ) or die ( $ovh_status ) ;


// fermeture de la session
    ovh ( "Logout" , $ssid ) or die ;
    }

}

un peu partout dans le fichier register.php mais aucun succès, je l'ai même enlevé du script et toujours le même résultat, le problème ne viendrait pas de register.template.php ?

Offline DeathSign

  • Local Moderator
  • Sr. Member
  • *
  • Posts: 854
  • Gender: Male
  • Net Engineer
Re: intégration enregistrement mail dans mailing list OVH
« Reply #12 on: March 29, 2010, 02:33:52 PM »
Tu dois l'insérer après l'enregistrement effectif c'est-à-dire après la ligne :
Code: [Select]
$memberID = registerMember($regOptions);
(La variable utilisée est au mauvais endroit, je conseillerai l'utilisation de $regOptions['email']

La vérification de la conformité du mail ayant été faite par SMF, tu peux donc enlever la condition (en plus elle ne faisait rien dans le code que tu me montres). La vérification de l'action est aussi inutile car tu sais qu'ici il fait l'inscription.)

En bref, d'après les éléments que je dispose et sans changer fondamentalement le code, j'écrirais  :
Code: [Select]
include("./lib.php");

$nic = "x";
$pass = "x";
$domain = "consommateur-gagnant.fr";
$ml = "x";

// Vous devez personnaliser les adresses subcribe, unsubscribe, help et faq.
$mlsub = "$ml-subscribe@$domain";
$mlunsub = "$ml-unsubscribe@$domain";
$mlhelp = "$ml-help@$domain";
$mlfaq = "$ml-faq@$domain";

$mail = $regOptions['email'];

// Ouverture de la session, recuperation de l'ID et inscription a la mailing list
$ssid = ovh("Login", array ("nic" => $nic, "password" => $pass)) or fatal_error('Erreur ouverture session OVH : ' . $ovh_status, true);
$ssid = $ssid["value"];
$result = ovh("MailingListSub", $ssid, array("domain" => $domain, "ml" => $ml, "email" => $mail)) or fatal_error('Erreur ajout mail : ' . $ovh_status, true);

// fermeture de la session
ovh("Logout" , $ssid) or fatal_error('Erreur fermeture session OVH', true);

Dis moi si quelque chose ne va pas, je n'ai pas testé.

Amicalement,
DeathSign

EDIT: J'utilise fatal_error() à la place des die() pour pouvoir enregistrer l'erreur dans le journal d'erreur et afficher l'erreur avec le thème. Elle a les mêmes fonctions. Mais... En y réfléchissant, j'aurais bien mis des log_error() et dans ce cas il faut modifier le code pour ne pas continuer s'il y a une erreur. L'inscription à la mailing list ne doit pas gêner l'inscription avec SMF.
« Last Edit: March 29, 2010, 02:39:35 PM by DeathSign »

Offline bazo

  • Semi-Newbie
  • *
  • Posts: 91
  • Gender: Male
    • LE site des bons plans, réunions de consommateurs...
Re: intégration enregistrement mail dans mailing list OVH
« Reply #13 on: March 29, 2010, 04:54:54 PM »
Merci pour l'aide, je viens d'intégrer le code que tu as modifié en dessous de ligne dite mais toujours rien, pas d'erreur mais pas d'inscription ni d'intégration à la mailing list. Une fois les informations tapée et envoyées il revient à l'accueil.

Offline Robin-d

  • Jr. Member
  • **
  • Posts: 230
    • Educateur Sportif Vercors
Re: intégration enregistrement mail dans mailing list OVH
« Reply #14 on: March 30, 2010, 05:35:14 AM »
Tu as du "bousillé" ton fichier register.php ou même register.template, essaye d'en remettre un "neuf" et de retenter la manoeuvre ;)

Offline bazo

  • Semi-Newbie
  • *
  • Posts: 91
  • Gender: Male
    • LE site des bons plans, réunions de consommateurs...
Re: intégration enregistrement mail dans mailing list OVH
« Reply #15 on: March 30, 2010, 07:24:29 AM »
je teste le script sur un forum de test tout neuf.

Offline bazo

  • Semi-Newbie
  • *
  • Posts: 91
  • Gender: Male
    • LE site des bons plans, réunions de consommateurs...
Re: intégration enregistrement mail dans mailing list OVH
« Reply #16 on: March 30, 2010, 08:22:19 PM »
Bon j'ai laissé tomber l'intégration dans le fichier register.php, d'après des gars sur le support anglais c'est trop complexe à réaliser.

Je suis tombé sur un MOD qui permet de rediriger après l'inscription d'un membre, j'ai donc créé une action newsletter  qui affichera le script précédemment  cité. Ca fait plusieurs heure que je suis dessus et j'ai pas l'impression d'avancer. En fait il n'envoie pas les données et il revient à l'index sans erreur c'est déjà ça.

JE vous mets en pièce jointe tous les fichiers que j'ai du modifier.
« Last Edit: March 30, 2010, 08:28:57 PM by bazo »

Offline DeathSign

  • Local Moderator
  • Sr. Member
  • *
  • Posts: 854
  • Gender: Male
  • Net Engineer
Re: intégration enregistrement mail dans mailing list OVH
« Reply #17 on: March 31, 2010, 04:45:31 PM »
Bon j'ai laissé tomber l'intégration dans le fichier register.php, d'après des gars sur le support anglais c'est trop complexe à réaliser.
Franchement si ton bout de code qui utilise l'API d'OVH marche je ne vois pas en quoi c'est compliqué.
Est-ce que tu as déjà réussi à l'utiliser en dehors de SMF ?

Offline bazo

  • Semi-Newbie
  • *
  • Posts: 91
  • Gender: Male
    • LE site des bons plans, réunions de consommateurs...
Re: intégration enregistrement mail dans mailing list OVH
« Reply #18 on: March 31, 2010, 04:47:33 PM »
oui ça fonctionne j'ai testé, c'est ça qui m'embête, c'est la structure de SMF que je dois intégrer avec bout de code.

Offline DeathSign

  • Local Moderator
  • Sr. Member
  • *
  • Posts: 854
  • Gender: Male
  • Net Engineer
Re: intégration enregistrement mail dans mailing list OVH
« Reply #19 on: March 31, 2010, 05:02:49 PM »
Et donc, avec ce bout de code dans un fichier à part (reconfiguré) qui ne devrait rien te dire mais tout faire en silence :

Code: [Select]
include("./lib.php");

$nic = "x";
$pass = "x";
$domain = "consommateur-gagnant.fr";
$ml = "x";

// Vous devez personnaliser les adresses subcribe, unsubscribe, help et faq.
$mlsub = "$ml-subscribe@$domain";
$mlunsub = "$ml-unsubscribe@$domain";
$mlhelp = "$ml-help@$domain";
$mlfaq = "$ml-faq@$domain";

$mail = 'adresse@test.com';

// Ouverture de la session, recuperation de l'ID et inscription a la mailing list
$ssid = ovh("Login", array ("nic" => $nic, "password" => $pass)) or die('Erreur ouverture session OVH : ' . $ovh_status);
$ssid = $ssid["value"];
$result = ovh("MailingListSub", $ssid, array("domain" => $domain, "ml" => $ml, "email" => $mail)) or die('Erreur ajout mail : ' . $ovh_status);

// fermeture de la session
ovh("Logout" , $ssid) or die('Erreur fermeture session OVH');

Offline bazo

  • Semi-Newbie
  • *
  • Posts: 91
  • Gender: Male
    • LE site des bons plans, réunions de consommateurs...
Re: intégration enregistrement mail dans mailing list OVH
« Reply #20 on: March 31, 2010, 05:08:39 PM »
c'est l'adresse adresse@test.com qui s'est intégrée pas celle que j'ai tapée, ce qui parait logique. Il n'y a pas eu d'erreur.

Offline DeathSign

  • Local Moderator
  • Sr. Member
  • *
  • Posts: 854
  • Gender: Male
  • Net Engineer
Re: intégration enregistrement mail dans mailing list OVH
« Reply #21 on: March 31, 2010, 05:16:32 PM »
Ok super :)

J'ai modifié le fichier Register.php que tu nous avais fourni en enlevant le bout de code du début et en rajoutant ce que je t'avais collé après la ligne
Code: [Select]
$memberID = registerMember($regOptions);
Reconfigure ligne 307 à 310 et met le fichier lib.php à la racine de ton forum smf (où y'a le fichier index.php) puis enregistre toi. Tu me diras si t'as des erreurs dans le journal d'erreur.

Offline bazo

  • Semi-Newbie
  • *
  • Posts: 91
  • Gender: Male
    • LE site des bons plans, réunions de consommateurs...
Re: intégration enregistrement mail dans mailing list OVH
« Reply #22 on: March 31, 2010, 06:18:31 PM »
Ouh la vache heureusement tu es pas à côté de moi, je t'aurais sauté au cou, sur mon forum de test ça fonctionne nickel.

Offline maximus23

  • Local Moderator
  • SMF Super Hero
  • *
  • Posts: 11,329
  • Gender: Male
  • Smf 2.1 RC2
    • Smf Français Forum non Officiel
Re: intégration enregistrement mail dans mailing list OVH
« Reply #23 on: March 31, 2010, 06:38:52 PM »
Bonsoir,
 
Je le mets dans les tutos dès que tout est ok :)
Pas de support par PM ou Courrier...Veuillez utiliser le forum pour vous avoir une réponse rapide à votre demande d'aide. Merci.
Amitiés et à Bientôt...
No support by PM or Mail...You will get better and faster responses in the support forums. Thank you.
Have a nice day...

Offline bazo

  • Semi-Newbie
  • *
  • Posts: 91
  • Gender: Male
    • LE site des bons plans, réunions de consommateurs...
Re: intégration enregistrement mail dans mailing list OVH
« Reply #24 on: March 31, 2010, 06:39:35 PM »
je suis en train de le mettre sur mon forum officiel je mettrais résolu

Offline bazo

  • Semi-Newbie
  • *
  • Posts: 91
  • Gender: Male
    • LE site des bons plans, réunions de consommateurs...
Re: intégration enregistrement mail dans mailing list OVH
« Reply #25 on: March 31, 2010, 06:48:55 PM »
Voilà tout est bon sur mon forum officiel, merci de votre aide c'est vraiment cool.

Offline DeathSign

  • Local Moderator
  • Sr. Member
  • *
  • Posts: 854
  • Gender: Male
  • Net Engineer
Re: intégration enregistrement mail dans mailing list OVH
« Reply #26 on: April 01, 2010, 01:52:30 PM »
Cool ;D

Pour ceux qui souhaitent améliorer le truc, voici les choses à faire :
- utiliser log_error() à la place de fatal_error() mais sortir en conséquence
- faire deux fonctions (au moins). L'une pour ajouter une adresse et l'autre pour la supprimer.
- lorsqu'un membre change d'adresse email : enlever l'ancienne et ajouter la nouvelle pour maintenir la liste à jour.

Amicalement,
DeathSign

Offline PATRICK26

  • Newbie
  • *
  • Posts: 7
Re: intégration enregistrement mail dans mailing list OVH
« Reply #27 on: August 07, 2010, 02:07:27 PM »
j'y connais pas grand chose, mais il y a une chose de sure:

sur les offres "plan" de chez OVH, les envois groupés type news letter, ne bloquent pas a cause de smf, mais d'ovh. en effet, afin que les autres clients hébergés sur le meme disque que toi, ne voient leur bande passante reduire lors de tes envois, les envois sont bloqués.

nous avons resolu le probleme en passant en dédié (offre kimsufi)

le fil est vieux, mais si ça sert....