Как да изпратя масов имейл Използване на PHP

Публикувано в PHP от ShortLikeAFox на 19-ти септември, 2008 год.

Значи вие искате да изпратите имейл маса или искате да създадете програма, която може бързо да се промени да изпрати множество писма маса. PHP прави това лесно. В този пример ще приемем, че имате списък с имейл адресите, които искате да изпратите електронно писмо до определени. Аз също ще се предположи, че сте се съхранява този списък в база данни, но този код може лесно да бъдат коригирани, за да използва или hardcoded списъка имейл адреса или списък от друг източник.

<? PHP

/ / Първо се свърже с базата данни, която съдържа информация за адреса имейл.
$ Потребител = "Потребител";
$ Домакин = "домакин";
$ Парола = "парола";
$ База данни = "база данни";

( "Couldn't connect to server" ); $ Cxn = mysql_connect ($ домакин, $ потребител, $ парола) или умират ("Не може да се свърже със сървъра");
mysql_select_db ($ база данни);

/ / Запитване таблицата, която съдържа имейл адреси. Попълнете вашия собствен име на таблица тук ...
$ Заявка = "Изберете от theEmailAddresses *";
( mysql_error ($cxn)); $ Резултат = mysql_query ($ заявка, $ cxn) или да умрат (mysql_error ($ cxn));
$ Nrows = mysql_num_rows ($ резултат);

/ / Кой изпращача ще бъдат идентифицирани като. Можете да сложите каквото искате тук, но това наистина не е много етично да пусне един имейл адрес, който не контролират тук.
$ От = "От: me@mydomain.com";
/ / A стандарт имейл сюжетната линия
$ Предмет = "Какво е новото в mydomain.com";
/ / Съобщение
$ Съобщение = "Здравей оценяват приятел

Ние продаваме "бисквитки" на mydomain.com. Не забравяйте да го проверите!
С уважение,
мен ";

/ / Вече оспориха всички имейл адрес. Сега ние просто трябва да изпратите имейл
0 ; $i < $nrows; $i ){ за ($ I = 0; $ I <$ nrows; $ I ) (

$ Ред = mysql_fetch_assoc ($ резултат);
екстракт ($ ред);
/ / Замени $ имейл с каквото и колоната на имейл адресите, се нарича
$ Да = "$ имейл";
/ / Изпращане на имейл до всеки имейл в базата данни
ако (E-mail ($ до $ предмет, $ съобщение, $ от)) (

/ / Извеждане на името на имейли, които бяха изпратени успешно. Използват това само за да се уверите, че програмата не е замразен. На теория им трябва да бъде един постоянен поток от имена са отпечатани>

); "Хуманитарна помощ" ("$ за <br/>");

)

)




?>

Този късче на код се възползва от PHP поща () функция. Това е един много мощен и лесен за използване функция. Не забравяйте, че с голяма сила идва голяма отговорност. Опитайте се да не използвате тази функция, за зло.

Как да Ръчно Вмъкване на потребителя в един SMF форум Използване на PHP

Публикувано в SMF (необходимо е обикновено машина форум) , PHP от ShortLikeAFox на 28-ми юли, 2008 год.

Този конкретен пример е за SMF 1.1.5. Не можем да гарантираме, че ще работи с всяка друга версия.

Така че тече Обикновено машина форум Софтуер и искате да въведете ръчно един потребител? Няма проблем. Знам, че този проблем изглежда много специфичен, но идеята е обяснено тук може да се адаптира към различни видове форуми и други данни задвижвани софтуерни пакети, като Wordpress. Преди да влязат в точно как да стане това, нека да разгледаме как просто машина Форуми следи от потребители. В базата данни SMF има таблица, наречена smf_members. В smf_members структура изглежда така:

Област Тип Нула

Ключ По подразбиране Допълнително
ID_MEMBER mediumint (8) грозен NO PRI NULL auto_increment
memberName VARCHAR (80) NO MUL
dateRegistered INT (10) грозен NO MUL 0
мнения mediumint (8) грозен NO MUL 0
ID_GROUP smallint (5) грозен NO MUL 0
lngfile tinytext NO MUL
lastLogin INT (10) грозен NO MUL 0
realName tinytext NO
instantMessages smallint (5) NO 0
unreadMessages smallint (5) NO 0
buddy_list текст NO
pm_ignore_list текст NO
messageLabels текст NO
passwd VARCHAR (64) NO
emailAddress tinytext NO
personalText tinytext NO
пол tinyint (4) грозен NO 0
дата на раждане дата NO MUL 0001-01-01
websiteTitle tinytext NO
websiteUrl tinytext NO
място 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
на средата VARCHAR (80) NO
подпис текст NO
timeOffset поплавък NO 0
въплъщение tinytext NO
pm_email_notify tinyint (4) NO 0
karmaBad smallint (5) грозен NO 0
karmaGood smallint (5) грозен 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) грозен NO 0
is_activated tinyint (3) грозен NO 1
validation_code VARCHAR (10) NO
ID_MSG_LAST_VISIT INT (10) грозен NO 0
additionalGroups tinytext NO
smileySet VARCHAR (48) NO
ID_POST_GROUP smallint (5) грозен NO MUL 0
totalTimeLoggedIn INT (10) грозен NO 0
passwordSalt VARCHAR (5) NO

Сферата трябва да обърнат внимание на:

  • memberName - Самостоятелно Explanitory.
  • dateRegistered - не е необходимо, но ако не попълва датата регистрирани показва като 31ви Дек, 1969. Датата се записва като една епоха клеймо. Не знам как да се изчисли времеви отпечатъци в главата ти? Няма проблем. Да използвам свободното генератор намерени тук .
  • realName - трябва да се включат. Когато не съм сигурен, че просто се повтаря memberName тук.
  • emailAddress - Самостоятелно Explanitory.
  • is_activated - Трябва да бъде зададен на 1, тъй като ние сме ръчно активиране на член.
  • ID_POST_GROUP - Няма да лъжа. Аз не съм сигурен какво е, но винаги изглежда да се определят до 4. Така че .... Винаги съм го до 4. Не е най-добрият начин за програмата, но това, което можеш да направиш?
  • passwd - паролата, която искате да се даде на нов потребител. Невъзможно е да разбера как да се влиза без да погледне документацията, SMF. Правилното код за криптиране на парола SMF за базата данни изглежда така:

($memberName).$password) $ Passwd = sha1 (strtolower ($ memberName). $ Паролата)

В горния ред от кода, $ парола е действително паролата на потребителя.

Как да го постигнете:

/ / От една страна, се свърже с базата данни SMF

$ Домакин = "име на хост"; / / Име на хоста
$ Име = "Потребител"; / / MySQL потребителско име
$ Mypassword = "парола"; / / MySQL парола
$ Db_name = "Потребител"; / / База данни име

("cannot connect to server"); mysql_connect ("$ домакин", "$ потребителско име", "$ mypassword"), или умират ("не може да се свърже със сървъра");
("cannot select DB"); mysql_select_db ("$ db_name"), или умират ("не може да изберете DB");

$ MemberName = "Ironman";
$ RealName = "Тони Старк";
$ EmailAddress = "ironMan@ironMan.com";
$ Is_activated = 1;
$ ID_POST_GROUP = 4;

$ Парола = "Tony1234";

($memberName).$password); $ Парола = sha1 (strtolower ($ memberName). $ Парола);

$ DateRegistered = 1216951200; / / 07.25.2008 2 ч.

$ Заявка = "вкарва в smf_members (memberName, realName, emailAddress, is_activated, ID_POST_GROUP, passwd, dateRegistered) стойности (" $ memberName ',' $ realName ',' $ emailAddress ',' $ is_activated ',' $ ID_POST_GROUP ',' $ парола ',' $ dateRegistered ') ";
("SMF Error 101.234 "); $ Резултат = mysql_query ($ заявка), или умират ("Грешка SMF 101,234");

Това е всичко, което трябва да го!