$formulaire->addElement('static', 'note', '', 'Listes des adresses mails séparées par des points-virgules'); $formulaire->addElement('textarea', 'tos', 'Destinataires', array('cols' => 60, 'rows' => 15)); $formulaire->addElement('header', 'boutons', ''); $formulaire->addElement('submit', 'soumettre', 'Soumettre'); $formulaire->addRule('subject', 'subject manquant', 'required'); $formulaire->addRule('body', 'body manquant', 'required'); $formulaire->addRule('tos', 'to manquant', 'required'); $formulaire->addRule('from_name', 'from manquant', 'required'); $formulaire->addRule('from_email', 'from manquant', 'required'); $formulaire->addRule('from_email', 'from invalide', 'email'); if ($formulaire->validate()) { $valeurs = $formulaire->exportValues(); $email_tos = explode(';', $valeurs['tos']); $nb = 0; $liste = $blackList->obtenirListe(); foreach ($email_tos as $nb => $email_to) { $email_to = trim($email_to); if (filter_var($email_to, FILTER_VALIDATE_EMAIL)) { if (!in_array($email_to, $liste)) { AFUP_Mailing::envoyerMail($valeurs['from_email'], $email_to, $valeurs['subject'], $body); if (++$nb % 200 == 0) { sleep(5); } } } } AFUP_Logs::log('Envoi mailing ' . $valeurs['subject']); afficherMessage('Le mail a été envoyé', 'index.php?page=mailing'); } $smarty->assign('formulaire', genererFormulaire($formulaire)); }
/** * Relance une personne afin qu'elle renouvelle sa cotisation. * * @access public * @param int $type_personne Type de personne concerné * @param int $id_personne Identifiant de la personne concernée * @return bool */ function relancer($type_personne, $id_personne) { require_once 'Afup/AFUP_Configuration.php'; $configuration = $GLOBALS['AFUP_CONF']; if (AFUP_PERSONNES_MORALES == $type_personne) { $personnes = new AFUP_Personnes_Morales($this->_bdd); } else { $personnes = new AFUP_Personnes_Physiques($this->_bdd); } $infos = $personnes->obtenir($id_personne, 'nom, prenom, email'); $sujet = "Relance cotisation AFUP\n"; $montant = AFUP_PERSONNES_MORALES == $type_personne ? AFUP_COTISATION_PERSONNE_MORALE : AFUP_COTISATION_PERSONNE_PHYSIQUE; $corps = <<<TXT Bonjour, Votre cotisation annuelle à l'AFUP est arrivée à son terme. Vous pouvez la renouveler : * En ligne via l'espace d'administration (c'est de loin la meilleure option !) : \thttp://www.afup.org/pages/administration/ * Par virement bancaire en contactant le trésorier sur tresorier@afup.org. * Ou encore par chèque d'un montant de {$montant} euros libellé à l'ordre de l'AFUP ainsi que votre identité à l'adresse suivante : \tAFUP \t32 boulevard de Strasbourg \tCS 30108 \t75468 Paris Cedex 10 Merci ! Cordialement, Le trésorier TXT; $ok = AFUP_Mailing::envoyerMail($GLOBALS['conf']->obtenir('mails|email_expediteur'), array($infos['email'], $infos['nom'] . " " . $infos['prenom']), $sujet, $corps . $link); if (false === $ok) { return false; } $requete = 'UPDATE'; $requete .= ' afup_cotisations '; $requete .= 'SET'; $requete .= ' nombre_relances=IF(nombre_relances IS NULL, 1, nombre_relances+1),'; $requete .= ' date_derniere_relance=' . time() . ' '; $requete .= 'WHERE'; $requete .= ' type_personne=' . $type_personne; $requete .= ' AND id_personne=' . $id_personne; $this->_bdd->executer($requete); return true; }
/** * Envoi un message de bienvenue lorsque l'utilisateur le demande * * @param string $login Login de la personne physique * @param string $email Email de la personne physique * @access public * @return bool Succès de l'envoi */ function envoyerCourrierBienvenue($login, $email, $id = null) { $succes = false; $selection = 'SELECT '; $selection .= ' id, login, email '; $selection .= 'FROM '; $selection .= ' afup_personnes_physiques '; $selection .= 'WHERE '; if ($id === null) { $selection .= ' email=' . $this->_bdd->echapper($email); } else { $selection .= ' id=' . $this->_bdd->echapper($id) . ' '; } $data = $this->_bdd->obtenirEnregistrement($selection); $id = $data['id']; $identifiant = $data['login']; $email = $data['email']; if (is_numeric($id) and $id > 0) { $mot_de_passe = substr(md5(uniqid(rand(), true)), 0, 10); $requete = 'UPDATE '; $requete .= ' afup_personnes_physiques '; $requete .= 'SET'; $requete .= ' mot_de_passe=' . $this->_bdd->echapper(md5($mot_de_passe)); $requete .= 'WHERE'; $requete .= ' id=' . $this->_bdd->echapper($id); if ($this->_bdd->executer($requete)) { $corps = "Cher membre,\n\n"; $corps .= "Tout d'abord bienvenue à l'AFUP ! Nous sommes ravis de vous accueillir au sein de l'Association Française des Utilisateurs de PHP, réunissant tous les utilisateurs de la plate-forme PHP.\n\n"; $corps .= "Être membre de l'AFUP vous ouvre la porte à une multitude d'avantages:\n"; $corps .= "- un accès au back-office, qui vous permettra de nous aider à nourrir les projets. Voici votre identifiant : {$identifiant} . Votre mot de passe est : {$mot_de_passe}. Le back-office est accessible à cette adresse: www.afup.org/wiki . Vous pouvez changer votre mot de passe en vous connectant sur la page « administration » de l'AFUP : www.afup.org/pages/administration.\n"; $corps .= "- des invitations aux Rendez-vous AFUP : conférences thématiques, à Paris ou en province, animées par des experts. Le coût de ces conférences étant pris en charge par l'AFUP, elles sont gratuites pour les participants!\n"; $corps .= "- des Apéros PHP: des développeurs se réunissent régulièrement autour d'un verre pour discuter PHP. Soyez tenu au courant de ces apéros, participez à ceux qui se déroulent dans votre ville, rencontrez des développeurs PHP près de chez vous. \n"; $corps .= "- un tarif préférentiel au Forum PHP et au PHP Tour: votre adhésion à l'AFUP vous donnera droit au tarif « membre AFUP » lors de ces prochains événements.\n"; $corps .= "- des réductions exclusives négociées auprès de nos partenaires sur leurs formations et leurs services : découvrez les http://afup.org/wiki/wakka.php?wiki=OffreDesPartenaires\n"; $corps .= "- l'inscription à la mailing-list des membres de l'AFUP: un problème de code ? Besoin d'un conseil ? Une offre d'emploi à diffuser ? Une actualité qui pourrait intéresser la communauté ? Ecrivez à la mailing-list membres@afup.org et échangez avec les centaines de membres de l'AFUP.\n\n"; $corps .= "L'AFUP, c'est aussi un site web à optimiser, des outils à (ré)inventer, un forum à organiser, des Rendez-vous AFUP à suggérer: l'AFUP a besoin de vous pour avancer !\n"; $corps .= "- Proposez-nous vos thématiques pour les Rendez-vous AFUP. Vous avez envie d'inviter un conférencier ? Vous avez besoin de louer une salle ? Vous souhaitez contacter les membres AFUP de votre ville ? Contactez-nous, nous vous aiderons à mettre en place votre soirée PHP grâce à un soutien logistique et financier.\n"; $corps .= "- Participez à la création d'outils pour l'AFUP. Le site de l'AFUP va être repensé, le site des Apéros PHP va entrer en chantier, de nouveaux outils de communication vont être développés. Aidez-nous à les mettre en œuvre !\n"; $corps .= "- Lancez des Apéros PHP dans votre ville: de nombreux membres de l'AFUP habitent certainement près de chez vous, l'AFUP peut vous aider à vous mettre en contact.\n\n"; $corps .= "Enfin, adhérer à l'AFUP, c'est surtout soutenir la plate-forme et montrer son envie de la voir grandir et progresser.\n\n"; $corps .= "A très bientôt,\n\n"; $corps .= "L'équipe AFUP\n"; $check = AFUP_Mailing::envoyerMail($GLOBALS['conf']->obtenir('mails|email_expediteur'), $email, "Adhésion AFUP", $corps); return $check; } } return $succes; }
$formulaire->addElement('text', 'telephone', 'Téléphone', array('size' => 20, 'maxlength' => 20, 'class' => 'span4')); $formulaire->addElement('text', 'email', 'Email', array('size' => 30, 'maxlength' => 100, 'class' => 'span7')); $formulaire->addElement('textarea', 'commentaires', 'Commentaires', array('cols' => 42, 'rows' => 4, 'class' => 'span7')); $formulaire->addElement('submit', 'soumettre', 'Soumettre', array('class' => 'btn primary', 'style' => 'float: right')); $formulaire->addRule('titre_revue', 'Titre de la revue manquante', 'required'); $formulaire->addRule('nom', 'Nom manquant', 'required'); $formulaire->addRule('prenom', 'Prénom manquant', 'required'); $formulaire->addRule('carte_presse', 'Carte presse manquante', 'required'); $formulaire->addRule('adresse', 'Adresse manquante', 'required'); $formulaire->addRule('code_postal', 'Code postal manquant', 'required'); $formulaire->addRule('ville', 'Ville manquante', 'required'); $formulaire->addRule('telephone', 'Téléphone manquant', 'required'); $formulaire->addRule('email', 'Email manquant', 'required'); $formulaire->addRule('email', 'Email invalide', 'email'); if ($formulaire->validate()) { $valeurs = $formulaire->exportValues(); $ok = $presse->ajouter(null, time(), $formulaire->exportValue('titre_revue'), $formulaire->exportValue('civilite'), $formulaire->exportValue('nom'), $formulaire->exportValue('prenom'), $formulaire->exportValue('carte_presse'), $formulaire->exportValue('adresse'), $formulaire->exportValue('code_postal'), $formulaire->exportValue('ville'), $formulaire->exportValue('id_pays'), $formulaire->exportValue('telephone'), $formulaire->exportValue('email'), $formulaire->exportValue('commentaires'), 6, 1); // 1 = valide if ($ok) { $body = "Une demande d'accréditation a été déposé en ligne :\n" . " - titre : " . $formulaire->exportValue('titre_revue') . "\n" . " - correspondant : " . $formulaire->exportValue('civilite') . " " . $formulaire->exportValue('prenom') . " " . $formulaire->exportValue('nom') . "\n" . " - carte presse : " . $formulaire->exportValue('carte_presse') . "\n" . " - adresse : " . $formulaire->exportValue('adresse') . " | " . $formulaire->exportValue('code_postal') . " " . $formulaire->exportValue('ville') . " | " . $formulaire->exportValue('id_pays') . "\n" . " - téléphhone : " . $formulaire->exportValue('telephone') . "\n" . " - email : " . $formulaire->exportValue('email') . "\n" . " - commentaires : " . strip_tags($formulaire->exportValue('commentaires')); AFUP_Mailing::envoyerMail(array($formulaire->exportValue('email'), $formulaire->exportValue('nom') . ' ' . $formulaire->exportValue('prenom')), array('*****@*****.**', 'Bureau AFUP'), 'Demande d\'accréditation presse Forum PHP 2014', $body); AFUP_Mailing::envoyerMail(array($formulaire->exportValue('email'), $formulaire->exportValue('nom') . ' ' . $formulaire->exportValue('prenom')), array('*****@*****.**', 'Communication AFUP'), 'Demande d\'accréditation presse Forum PHP 2014', $body); $smarty->assign('texte', 'Merci. Votre demande d\'accréditation a été prise en compte et sera traitée prochainement.'); } else { $smarty->assign('texte', 'Une erreur est survenue lors de votre inscription. Veuillez contacter le service presse dont les coordonnées apparaissent ci-dessous afin de régler le problème.'); } $smarty->display('accreditation_valide.html'); } else { $smarty->assign('formulaire', genererFormulaire($formulaire)); $smarty->display('accreditation.html'); }
<?php require_once dirname(__FILE__) . '/../../../sources/Afup/Bootstrap/Http.php'; require_once dirname(__FILE__) . '/_config.inc.php'; require_once 'Afup/AFUP_Mailing.php'; $mailing = new AFUP_Mailing($bdd); $message = ''; $email = isset($_GET['unsuscribe']) ? $_GET['unsuscribe'] : false; $nb = isset($_GET['nb']) ? $_GET['nb'] : ''; $action = isset($_GET['action']) ? $_GET['action'] : false; if ($action == 'unsuscribe') { $mailing->BlacklistEmail($email); $message = "L'adresse {$email} a bien été retirée de nos listes."; } $smarty->assign('message', $message); $smarty->assign('email', $email); $smarty->assign('nb', $nb); $smarty->display('mailing.html');
/** * Relance une personne afin qu'elle renouvelle sa cotisation. * * @access public * @param int $type_personne Type de personne concerné * @param int $id_personne Identifiant de la personne concernée * @return bool */ function relancer($type_personne, $id_personne) { require_once 'Afup/AFUP_Configuration.php'; $configuration = $GLOBALS['AFUP_CONF']; if (AFUP_PERSONNES_MORALES == $type_personne) { $personnes = new AFUP_Personnes_Morales($this->_bdd); } else { $personnes = new AFUP_Personnes_Physiques($this->_bdd); } $infos = $personnes->obtenir($id_personne, 'nom, prenom, email'); $sujet = "Relance cotisation AFUP\n"; $montant = AFUP_PERSONNES_MORALES == $type_personne ? AFUP_COTISATION_PERSONNE_MORALE : AFUP_COTISATION_PERSONNE_PHYSIQUE; $corps = "Bonjour, \n\n"; $corps .= "Votre cotisation annuelle à l'AFUP est arrivée à son terme.\n\n"; $corps .= "Afin de la renouveller, il vous suffit d'envoyer un chèque de " . $montant; $corps .= " euros libellé à l'ordre de l'AFUP ainsi que votre identité à l'adresse suivante :\n\n"; $corps .= "AFUP\n"; $corps .= "32 boulevard de Strasbourg\n"; $corps .= "CS 30108\n"; $corps .= "75468 Paris Cedex 10\n\n"; $corps .= "Vous pouvez aussi la renouveller directement :\n\n"; $corps .= "* En ligne via l'espace d'administration:\n"; $corps .= " http://www.afup.org/pages/administration/\n\n"; $corps .= "* Par virement bancaire en contactant le trésorier tresorier@afup.org:\n"; $corps .= "Cordialement\n\n"; $corps .= "Le trésorier"; $ok = AFUP_Mailing::envoyerMail($GLOBALS['conf']->obtenir('mails|email_expediteur'), array($infos['email'], $infos['nom'] . " " . $infos['prenom']), $sujet, $corps . $link); if (false === $ok) { return false; } $requete = 'UPDATE'; $requete .= ' afup_cotisations '; $requete .= 'SET'; $requete .= ' nombre_relances=IF(nombre_relances IS NULL, 1, nombre_relances+1),'; $requete .= ' date_derniere_relance=' . time() . ' '; $requete .= 'WHERE'; $requete .= ' type_personne=' . $type_personne; $requete .= ' AND id_personne=' . $id_personne; $this->_bdd->executer($requete); return true; }
function envoyerResumeVote($salt, $user_id) { $requete = 'SELECT'; $requete .= ' nom, prenom, email '; $requete .= 'FROM'; $requete .= ' afup_personnes_physiques '; $requete .= 'WHERE'; $requete .= ' id=' . $this->_bdd->echapper($user_id); $resultat = $this->_bdd->obtenirEnregistrement($requete); require_once 'Afup/AFUP_Configuration.php'; $configuration = $GLOBALS['AFUP_CONF']; $requete = 'select titre, note from afup_sessions_note inner join afup_sessions on afup_sessions_note.session_id=afup_sessions.session_id where salt=' . $this->_bdd->echapper($salt); $resultat = $this->_bdd->obtenirEnregistrement($requete); $sujet = "Vos votes de session\n"; $corps = "Bonjour, \n\n"; $corps .= "Nous avons bien enregistré votre vote sur les sessions du forum.\n\n"; $corps .= $resultat['titre'] . ' ' . $resultat['note'] . "\n"; $corps .= "le grain de sel pour retrouver l'enregistrement dans la base est {$salt}"; $corps .= "\nLe bureau\n\n"; $corps .= $configuration->obtenir('afup|raison_sociale') . "\n"; $corps .= $configuration->obtenir('afup|adresse') . "\n"; $corps .= $configuration->obtenir('afup|code_postal') . " " . $configuration->obtenir('afup|ville') . "\n"; $ok = AFUP_Mailing::envoyerMail($GLOBALS['conf']->obtenir('mails|email_expediteur'), array($resultat['email'], $resultat['nom'] . ' ' . $resultat['prenom']), $sujet, $corps); return $ok; }
/** * Envoi par mail d'une facture au format PDF * * @param string $reference Reference de la facturation * @access public * @return bool Succès de l'envoi */ function envoyerFacture($reference) { require_once 'Afup/AFUP_Configuration.php'; $configuration = $GLOBALS['AFUP_CONF']; $personne = $this->obtenir($reference, 'email, nom, prenom'); $sujet = "Facture AFUP\n"; $corps = "Bonjour, \n\n"; $corps .= "Veuillez trouver ci-joint la facture correspondant à la participation au forum organisé par l'AFUP.\n"; $corps .= "Nous restons à votre disposition pour toute demande complémentaire.\n\n"; $corps .= "Le bureau\n\n"; $corps .= $configuration->obtenir('afup|raison_sociale') . "\n"; $corps .= $configuration->obtenir('afup|adresse') . "\n"; $corps .= $configuration->obtenir('afup|code_postal') . " " . $configuration->obtenir('afup|ville') . "\n"; $chemin_facture = AFUP_CHEMIN_RACINE . 'cache' . DIRECTORY_SEPARATOR . 'fact' . $reference . '.pdf'; $this->genererFacture($reference, $chemin_facture); $ok = AFUP_Mailing::envoyerMail($GLOBALS['conf']->obtenir('mails|email_expediteur'), array($personne['email'], $personne['nom']), $sujet, $corps, array('file' => array($chemin_facture, 'facture-' . $reference . '.pdf'))); @unlink($chemin_facture); return $ok; }
function envoyerDemandesConfirmation($id, $sujet, $corps) { $requete = 'SELECT'; $requete .= ' id, '; $requete .= ' id_rendezvous, '; $requete .= ' nom, '; $requete .= ' prenom, '; $requete .= ' email '; $requete .= 'FROM'; $requete .= ' afup_rendezvous_inscrits '; $requete .= 'WHERE'; $requete .= ' id_rendezvous = ' . (int) $id . ' '; $requete .= 'AND'; $requete .= ' presence = ' . AFUP_RENDEZ_VOUS_VIENT . ' '; $requete .= 'AND'; $requete .= ' confirme NOT IN ( ' . AFUP_RENDEZ_VOUS_CONFIRME . ', ' . AFUP_RENDEZ_VOUS_DECLINE . ')'; $requete .= 'GROUP BY'; $requete .= ' id '; $inscrits = $this->_bdd->obtenirTous($requete); $succes = false; require_once 'phpmailer/class.phpmailer.php'; foreach ($inscrits as $inscrit) { $hash = md5(utf8_decode($inscrit['id'] . $inscrit['id_rendezvous'] . $inscrit['nom'] . $inscrit['prenom'] . $inscrit['email'])); $link = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['PHP_SELF'] . '?hash=' . $hash; $link = str_replace('administration/index.php', 'rendezvous/confirmation.php', $link); AFUP_Mailing::envoyerMail(array($GLOBALS['conf']->obtenir('mails|email_expediteur'), $GLOBALS['conf']->obtenir('mails|nom_expediteur')), array($inscrit['email'], $inscrit['nom']), $sujet, $corps . $link); $succes += 1; } return $succes; }