Comment faire pour envoyer un email de la masse en utilisant PHP

Posté dans PHP par ShortLikeAFox sur Septembre 19, 2008

Alors, vous voulez envoyer un email de la masse ou vous souhaitez créer un logiciel qui peut être rapidement changé d'envoyer plusieurs courriers électroniques de masse. PHP fait de cette facile. Dans cet exemple, je vais supposer que vous avez une liste d'adresses e-mail que vous souhaitez envoyer un e-mail à. Je vais aussi supposer que vous êtes de maintien de cette liste dans une base de données, mais ce code peut facilement être ajustés pour utiliser soit une adresse e-mail en dur liste ou une liste d'une autre source.

<? php

/ / Tout d'abord vous connecter à la base de données qui contient l'adresse e-mail des informations.
$ user = "USER";
$ host = "hôte";
$ password = "password";
= $ base de données "Base de données";

( "Couldn’t connect to server" ); cxn $ = mysql_connect ($ host, $ user, $ password) or die ( "Impossible de se connecter au serveur");
mysql_select_db ($ base de données);

/ / Recherche dans la table qui contient les adresses e-mail. Remplissez votre propre nom de la table ici ...
$ query = "SELECT * FROM theEmailAddresses";
( mysql_error ($cxn)); $ result = mysql_query ($ query, $ cxn) or die (mysql_error ($ cxn));
$ nrows = mysql_num_rows ($ result);

/ / Qui l'expéditeur est identifié comme. Vous pouvez mettre ce que vous voulez ici, mais ce n'est pas trop éthique de placer une adresse e-mail que vous ne contrôlez pas ici.
$ from = "De: me@mydomain.com";
/ / Un e-mail standard ligne d'objet
$ subject = "Quoi de neuf à mydomain.com";
/ / Le message
$ message = "Salut ami valeur,

Nous vendons maintenant à mydomain.com cookies. Assurez-vous de vérifier!
Cordialement,
moi ";

/ / Nous avons tous déjà demandé de l'adresse e-mail. Maintenant, il suffit d'envoyer à l'adresse e-mail
0 ; $i < $nrows; $i ++ ){ for ($ i = 0; $ i <$ nrows; $ i + +) (

$ row = mysql_fetch_assoc ($ result);
extract ($ row);
/ / Remplacer $ email avec quelle que soit la colonne d'adresses e-mail est appelé
$ to = "$ email";
/ / Envoyer l'e-mail pour chaque e-mail dans la base de données
if (mail ($ to, $ subject, $ message, $ de)) (

/ / Imprimer le nom d'e-mails ont été envoyés. -Je utiliser ce juste de faire en sorte que l'émission n'a pas gelé. En théorie, devrait leur être un flux régulier de noms en cours d'impression>

); echo ( "$ à <br/>");

)

)




?>

Ce morceau de code tire profit de la php mail () function. Il s'agit d'un très puissant et facile d'utiliser la fonction. Rappelez-vous que avec un grand pouvoir vient une grande responsabilité. Essayez de ne pas utiliser cette fonction pour le mal.

Lien permanent | Commentaires

Comment faire pour insérer un utilisateur dans un forum de SMF Utiliser PHP

Publié dans SMF (Simple Machine Forum), php par ShortLikeAFox en Juillet 28, 2008

Cet exemple est spécifique à l'intention de SMF 1.1.5. Je ne peux pas garantir qu'il fonctionnera avec une autre version.

Alors, vous exécutez Simple Machine Forum logiciel et que vous voulez entrer manuellement un utilisateur? Pas de problème. Je sais que ce problème semble très spécifique, mais les idées expliqué ici peut être adapté à d'autres types de forums et d'autres bases de données des logiciels tels que Wordpress. Avant de passer en exactement comment ce faire, nous allons jeter un coup d'oeil à la façon dont Simple Machines Forums garde la trace des utilisateurs. Dans la base de données SMF il ya une table appelée smf_members. Le smf_members structure ressemble à ceci:

Champ Type Null

Clé Défaut Extra
ID_MEMBER MEDIUMINT (8) non signés NO PRI NULL auto_increment
MEMBERNAME varchar (80) NO MUL
dateRegistered int (10) non signés NO MUL 0
postes MEDIUMINT (8) non signés NO MUL 0
ID_GROUP SMALLINT (5) non signés NO MUL 0
lngfile tinytext NO MUL
lastLogin int (10) non signés NO MUL 0
realname tinytext NO
instantMessages SMALLINT (5) NO 0
unreadMessages SMALLINT (5) NO 0
buddy_list texte NO
pm_ignore_list texte NO
messageLabels texte NO
passwd varchar (64) NO
adresse e-mail tinytext NO
personalText tinytext NO
sexe TinyInt (4) non signés NO 0
Date de naissance date NO MUL 0001-01-01
websiteTitle tinytext NO
websiteUrl tinytext NO
emplacement tinytext NO
ICQ tinytext NO
AIM varchar (16) NO
YIM varchar (32) NO
MSN tinytext NO
hideEmail TinyInt (4) NO 0
showOnline TinyInt (4) NO 1
timeFormat varchar (80) NO
signature texte NO
timeOffset float NO 0
avatar tinytext NO
pm_email_notify TinyInt (4) NO 0
karmaBad SMALLINT (5) non signés NO 0
karmaGood SMALLINT (5) non signés NO 0
usertitle tinytext NO
notifyAnnouncements TinyInt (4) NO 1
notifyOnce TinyInt (4) NO 1
notifySendBody TinyInt (4) NO 0
notifyTypes TinyInt (4) NO 2
memberIP tinytext NO
memberIP2 tinytext NO
secretQuestion tinytext NO
secretAnswer varchar (64) NO
ID_THEME TinyInt (4) non signés NO 0
is_activated TinyInt (3) non signés NO 1
validation_code varchar (10) NO
ID_MSG_LAST_VISIT int (10) non signés NO 0
additionalGroups tinytext NO
smileySet varchar (48) NO
ID_POST_GROUP SMALLINT (5) non signés NO MUL 0
totalTimeLoggedIn int (10) non signés NO 0
passwordSalt varchar (5) NO

Domaines, nous devons faire attention à:

  • MEMBERNAME - Auto Explanitory.
  • dateRegistered - n'est pas nécessaire, mais si pas rempli la date enregistrée s'affiche comme 31e Décembre 1969. La date est enregistré en tant que timestamp une époque. Je ne sais pas comment calculer les timestamps dans votre tête? Pas de problème. -Je utiliser le générateur de libre trouve ici.
  • realname - doit être inséré. Quand je ne suis pas sûr que je viens de répéter ici MEMBERNAME.
  • adresse e-mail - Auto Explanitory.
  • is_activated - Doit être mis à 1 puisque nous sommes manuellement l'activation d'un membre.
  • ID_POST_GROUP - Je ne vais pas mentir. Je ne suis pas sûr de quoi il s'agit, mais il semble toujours être fixé à 4. Alors .... J'ai toujours fixé à 4. Pas la meilleure façon de programmer, mais que pouvez-vous faire?
  • passwd - Le mot de passe que vous voulez donner le nouvel utilisateur. Il est impossible de trouver des moyens d'entrer sans regarder la documentation SMF. Le bon code pour chiffrer un SMF mot de passe pour la base de données se présente comme suit:

($memberName).$password) $ passwd = SHA1 (strtolower ($ MEMBERNAME). $ mot de passe)

Au-dessus de la ligne de code, $ est le mot de passe utilisateur réel de mot de passe.

Comment faire:

/ / Tout d'abord, se connecter à la base de données SMF

$ host = "hostname", / / Nom d'hôte
$ username = "username"; / / nom d'utilisateur MySQL
monmotdepasse $ = "mot de passe"; / / Mysql mot de passe
$ db_name = "username"; / / nom de base de données

("cannot connect to server"); mysql_connect ( "$ host", "$ username", "$ monmotdepasse") or die ( "Impossible de se connecter au serveur");
("cannot select DB"); mysql_select_db ( "$ db_name") or die ( "ne peut pas sélectionner DB");

MEMBERNAME $ = "IronMan";
$ realname = "Tony Stark";
$ email = "ironMan@ironMan.com";
is_activated $ = 1;
ID_POST_GROUP $ = 4;

$ password = "Tony1234";

($memberName).$password); $ password = SHA1 (strtolower ($ MEMBERNAME). $ password);

dateRegistered $ = 1216951200 / / 7-25-2008 2 AM

$ query = "INSERT INTO smf_members (MEMBERNAME, realname, adresse e-mail, is_activated, ID_POST_GROUP, passwd, dateRegistered) VALUES ( '$ MEMBERNAME', '$ realname', '$ email', '$ is_activated', '$ ID_POST_GROUP', ' $ password ',' $ dateRegistered ') ";
("SMF Error 101.234 "); $ result = mysql_query ($ query) or die ( "Erreur lors de SMF 101.234");

C'est tout ce qu'il ya à faire!

Lien permanent | Commentaires