Multimailer

Soyez le premier à donner votre avis sur cette source.

Vue 8 939 fois - Téléchargée 3 469 fois

Description

Scripts php utilisant la technique des XMLHttpRequest pour envoyer des mails aux membres enregistrés dans une table de la base de données Mysql. Il est nécessaire de télécharger la class.phpmailer.php (voir le mode d'emploi dans l'archive fournie). On prend comme exemple les anciens élèves d'une école, enregistrés dans une table mysql en fonction de leur promo. Les tests ont été effectués sur un serveur mutualisé pro d'OVH mais seulement avec 20 envois. On compte sur vous pour tester avec un nombre d'envois plus important, il sera alors nécessaire d'adapter les scripts php à la structure de votre base de données.

Source / Exemple :


Les différents fichiers et le mode d'emploi sont dans l'archive zip

Conclusion :


Scripts php utilisant la technique XMLHttpRequest avec interprétation du code renvoyé par le serveur vers le client. Si présence de scripts Javascript alors ces scripts sont exécutés sur le poste du client. Normalement pas de timeout du serveur car on effectue les envois 1 par 1 !

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

aladec2007
Messages postés
27
Date d'inscription
mercredi 27 juin 2007
Statut
Membre
Dernière intervention
19 février 2013

Rectificatif : Pour la remarque 1, on peut effectivement se passer du if (session_start()!= true){session_start();} car redonbant et bien non, après vérification, la ligne est nécessaire conséquence de l'utilisation de la technique XMLHttpRequest (je suppose)
cs_emilia123
Messages postés
122
Date d'inscription
mercredi 19 décembre 2001
Statut
Membre
Dernière intervention
5 janvier 2009

pour la sécurité, le fait que le répertoire soit sécurisé n'est pas une barrière ultime bien que cela soit une bonne protection.
Il suffit par exemple de cibler l'attaque sur un utilisateur qui aurait l'habitude de se connecter à la page sécurisée pour que l'attaque passe.
ex : si un utilisateur (qui est connecté à l'administration) visite un lien spécialement préparé pour lui, alors l'attaquant peut faire executer du Javascript à cet utilisateur (faille XSS) ou lui faire executer des requetes specifiques (faille d'injection sql).

C'est vraiment un bon reflexe que de ne jamais utiliser directement (pour l'affichage ou dans les requetes) une variable utilisateur, quelque soit son origine.
aladec2007
Messages postés
27
Date d'inscription
mercredi 27 juin 2007
Statut
Membre
Dernière intervention
19 février 2013

Merci pour ce commentaire constructif;
Pour la remarque 1, on peut effectivement se passer du if (session_start()!= true){session_start();} car redonbant. Pour les remarques concernant la sécurité, on peut effectivement améliorer afin d'éviter des problèmes mais il ne faut pas perdre de vue que ces scripts sont à placer dans un répertoire sécurisé uniquement accessible par un utilisateur authentifié. Je vais tenir compte de ce commentaire pour une prochaine mise à jour de la source.
cs_emilia123
Messages postés
122
Date d'inscription
mercredi 19 décembre 2001
Statut
Membre
Dernière intervention
5 janvier 2009

bonjour,

Plusieurs petites remarques :
1) les tests sur le session_start()
if (session_start()!= true){session_start();}
Je pense que ce test est inutile car redondant.
Le premier "session_start" lance le démarrage de la session.
Si elle ne renvoie pas "true", c'est qu'il y a eu un problème et cela ne devrait servir à rien de relancer "session_start" une seconde fois.

2) sécurité à l'affichage des données reçues.
Il faut faire attention à ne jamais utiliser les variables utilisateurs (récupérées de la variable $_GET ou $_POST) directement dans l'affichage retournée à l'internaute.
Le minimum est d'utiliser "htmlspecialchars(...)" pour éviter une attaque (XSS) qui consisterait à passer du javascript par l'une de ces variables par exemple.

3) sécurité dans les requetes SQL des données reçues.
Il faut faire attention à ne jamais utiliser les variables utilisateurs (récupérées de la variable $_GET ou $_POST) directement dans les requetes SQL.
Le minimum est d'utiliser "mysql_real_escape_string(...)" pour éviter une attaque (SQL Injection) qui consisterait à passer du SQL par l'une de ces variables par exemple, et qui se retrouverait directement interprété par le moteur SQL.

Bonne continuation.

EM.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.