Kako poslati masovnu e-pošte koristeći PHP

Posted in PHP po ShortLikeAFox na 19 Rujan 2008

Tako se želite udaljiti iz masovnu poruku ili želite napraviti program koji može brzo biti promijenjen kako bi se više masovno slanje e-pošte. PHP to lako. U ovom primjeru ja ću pretpostaviti da imate listu adresa e-pošte koji želite poslati neki e-mail na. Ću pretpostaviti da ste ovaj popis u skladu baze podataka, ali taj broj mogao lako se podešava za korištenje bilo hardcoded adresu e-pošte popisa ili popisa iz drugog izvora.

<? PHP

/ / Prvi spojiti na bazu podataka koja sadrži podatke o adresi e-pošte.
$ korisnik = "Korisnik";
$ host = "HOST";
$ lozinka = "Password";
$ baza = "BAZA PODATAKA";

( "Couldn’t connect to server" ); $ cxn = mysql_connect ($ host, $ korisnik, $ lozinka) ili umrijeti ( "Ne mogu se spojiti na poslužitelj");
mysql_select_db ($ baza);

/ / Upit tablice koji sadrži adrese e-pošte. Ispunite vlastite tablice ime ovdje ...
$ upit = "SELECT * FROM theEmailAddresses";
( mysql_error ($cxn)); $ rezultat = mysql_query ($ upit, $ cxn) ili umrijeti (mysql_error ($ cxn));
$ nrows = mysql_num_rows ($ rezultat);

/ / Tko je pošiljatelj će biti označeni kao. Možete staviti što želite ovdje, ali zapravo nije baš etički da se e-mail adresu da ne kontrole ovdje.
$ s = "From: me@mydomain.com";
/ / Standard e-mail naslov
$ subject = "Što je novo na mydomain.com";
/ / Poruka
$ poruka = "Pozdrav cijenjena prijatelj,

Mi sada prodati kolačiće na mydomain.com. Svakako provjerite to!
S poštovanjem,
mi ";

/ / Smo već queried sve adrese e-pošte. Sada mi samo trebate poslati na e-mail
0 ; $i < $nrows; $i ++ ){ for ($ i = 0; $ i <$ nrows; $ i + +) (

$ red = mysql_fetch_assoc ($ rezultat);
ekstrakt ($ row);
/ / Replace $ e-mail s obzira na kolone e-mail adresa je pozvao
$ do = "$ e-mail";
/ / Pošalji e-pošte za svaku e-poruku u bazu podataka
if (mail ($ do, $ subject, $ poruka, $ s)) (

/ / Ispis ime e-poruke koje su uspješno poslana. Koristim ovo samo kako bi bili sigurni da program nije smrznuta. U teoriji bi trebao biti njihov stalni tok naziva se tiskaju>

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

)

)




?>

To malo traje kod prednost od php mail () funkcija. Ovo je vrlo snažan i jednostavan za korištenje funkcija. Ne zaboravite da s velikom moći dolazi velika odgovornost. Pokušajte ne koristiti ovu funkciju za zlo.

Kako ručno umetanje korisnika u SMF forum koristeći PHP

Posted u SMF (Simple Machine Forum), php po ShortLikeAFox na 28. srpnja 2008

Ovo je specifičan primjer za SMF 1.1.5. Ne mogu garantirati da će raditi s bilo koje druge verzije.

Zato što pokrenete Simple Machine Forum Software i želite ručno unijeti korisnik? Nema problema. Znam taj problem čini vrlo specifičnim, ali ideja je objašnjeno ovdje se mogu prilagođenom druge vrste forumi i ostale baze podataka upravljan programskih paketa kao što su Wordpress. Prije nego što smo dobili upravo u tome, da je osmotriti kako Simple Machine Forum vodi evidenciju o korisnicima. U SMF baze podataka nalazi se tablica zove smf_members. U smf_members struktura izgleda ovako:

Polje Vrsta Null

Ključ Zadano Extra
ID_MEMBER mediumint (8) nepotpisani NE PRI NULL auto_increment
memberName varchar (80) NE Mul
dateRegistered int (10) nepotpisani NE Mul 0
komentara mediumint (8) nepotpisani NE Mul 0
ID_GROUP smallint (5) nepotpisani NE Mul 0
lngfile tinytext NE Mul
lastLogin int (10) nepotpisani NE Mul 0
realname tinytext NE
instantMessages smallint (5) NE 0
unreadMessages smallint (5) NE 0
buddy_list tekst NE
pm_ignore_list tekst NE
messageLabels tekst NE
passwd varchar (64) NE
emailAddress tinytext NE
personalText tinytext NE
spol tinyint (4) nepotpisani NE 0
Datum rođenja datum NE Mul 0001-01-01
websiteTitle tinytext NE
websiteUrl tinytext NE
mjesto tinytext NE
ICQ tinytext NE
AIM varchar (16) NE
YIM varchar (32) NE
MSN tinytext NE
hideEmail tinyint (4) NE 0
showOnline tinyint (4) NE 1
timeFormat varchar (80) NE
potpis tekst NE
timeOffset plutati NE 0
avatar tinytext NE
pm_email_notify tinyint (4) NE 0
karmaBad smallint (5) nepotpisani NE 0
karmaGood smallint (5) nepotpisani NE 0
usertitle tinytext NE
notifyAnnouncements tinyint (4) NE 1
notifyOnce tinyint (4) NE 1
notifySendBody tinyint (4) NE 0
notifyTypes tinyint (4) NE 2
memberIP tinytext NE
memberIP2 tinytext NE
secretQuestion tinytext NE
secretAnswer varchar (64) NE
ID_THEME tinyint (4) nepotpisani NE 0
is_activated tinyint (3) nepotpisani NE 1
validation_code varchar (10) NE
ID_MSG_LAST_VISIT int (10) nepotpisani NE 0
additionalGroups tinytext NE
smileySet varchar (48) NE
ID_POST_GROUP smallint (5) nepotpisani NE Mul 0
totalTimeLoggedIn int (10) nepotpisani NE 0
passwordSalt varchar (5) NE

Polja nam je potrebno obratiti pažnju na:

  • memberName - Samopomoć Explanitory.
  • dateRegistered - Nije potrebno, ali ako se ne napuni se datum prikazuje kao registrirani 31. prosinca 1969. Datum se sprema kao vremenske epohe. Ne znam kako izračunati timestamps u tvoju glavu? Nema problema. Ja koristiti besplatno generator pronaći ovdje.
  • realname - treba umetnuti. Kad nisam siguran bih samo ponoviti memberName ovdje.
  • emailAddress - Samopomoć Explanitory.
  • is_activated - Mora biti postavljen na 1 jer mi se ručno aktivirati član.
  • ID_POST_GROUP - neću lagati. Nisam siguran što je ovo, ali to uvijek izgleda kao da se postavi na 4. Dakle .... Uvijek sam ga postavite na 4. Nije najbolji način za program, ali ono što mogu učiniti?
  • passwd - Lozinka želite dati novi korisnik. Nemoguće je shvatiti kako ući bez gledate SMF dokumentaciju. Ispravna šifra za šifriranje jedan SMF lozinku za baze podataka izgleda ovako:

($memberName).$password) $ passwd = sha1 (strtolower ($ memberName). $ lozinka)

U gore liniju koda, $ lozinka je stvarni lozinku korisnika.

Kako to učiniti:

/ / Prvo, spojite se na SMF bazu podataka

$ host = "hostname", / / host ime
$ username = "korisničko ime", / / MySQL korisničko ime
$ MojaLozinka = "lozinka", / / MySQL password
$ db_name = "korisničko ime", / / Database ime

("cannot connect to server"); mysql_connect ( "$ host", "$ username", "$ MojaLozinka") ili umrijeti ( "ne može spojiti na poslužitelj");
("cannot select DB"); mysql_select_db ( "$ db_name") ili umrijeti ( "ne mogu odabrati DB");

$ memberName = "Ironman";
$ realname = "Tony Stark";
$ emailAddress = "ironMan@ironMan.com";
$ is_activated = 1;
$ ID_POST_GROUP = 4;

$ lozinka = "Tony1234";

($memberName).$password); $ lozinka = sha1 (strtolower ($ memberName). $ lozinka);

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

$ upit = "INSERT U smf_members (memberName, realname, emailAddress, is_activated, ID_POST_GROUP, passwd, dateRegistered) vrijednosti ( '$ memberName', '$ realname', '$ emailAddress',' $ is_activated ',' $ ID_POST_GROUP ',' $ lozinka ',' $ dateRegistered ') ";
("SMF Error 101.234 "); $ rezultat = mysql_query ($ upit) ili umrijeti ( "Pogreška SMF 101.234");

To je sve što je na njemu!