Як відправити масову Email Використання PHP

Опубліковано в PHP по ShortLikeAFox на 19 вересня 2008

Отже, ви хочете відправити по електронній пошті або масового ви хочете створити програму, яка може бути швидко змінений розіслати кілька масових розсилках електронної пошти. PHP робить це легко. У цьому прикладі я буду вважати, що у вас є список адрес електронної пошти ви хочете відправити певну лист. Я також припускаю, що ви тримаєте цей список в базу даних, але цей код може бути легко скоректована використовувати або жорстко список адрес електронної пошти або список з іншого джерела.

<? PHP

/ / Перший підключення до бази даних, яка містить інформацію про адресу електронної пошти.
$ Ізегем = "USER";
$ Host = "HOST";
$ Пароль = "пароль";
$ = База даних "База даних";

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

/ / Запит таблиця, яка містить адреси електронної пошти. Введіть своє ім'я таблиці тут ...
$ Діегу = "SELECT * FROM theEmailAddresses";
( mysql_error ($cxn)); $ Результат = mysql_query ($ запиту, $ Cxn) або померти (mysql_error ($ Cxn));
$ Nrows = mysql_num_rows ($ результат);

/ / Хто відправника буде називатися. Ви можете покласти те, що ви хочете тут, але насправді це не дуже етично місце адресу електронної пошти, ви не контролюєте тут.
$ С = С: me@mydomain.com ";
/ / Стандартний електронний темі
$ Питанню = "Що нового в mydomain.com";
/ / Повідомлення
$ Повідомлення = "Привіт цінних іншому,

Зараз ми продаємо печиво на mydomain.com. Перевірте це!
З повагою,
я ";

/ / Ми вже сумнів всі адреси електронної пошти. Тепер нам потрібно просто відправити лист
0 ; $i < $nrows; $i ){ для ($ I = 0, $ я <$ nrows, $ я ) (

$ = Mysql_fetch_assoc рядка ($ результат);
Екстракт ($ підряд);
/ / Замінити $ електронною поштою з будь-якою колонці адрес електронної пошти, називається
$ В = "$ електронної пошти";
/ / Відправити листа на кожен лист, в базі даних
якщо (пошта ($ к, $ питання, $ теззаде, $ с)) (

/ / Виводимо ім'я листів, які були успішно відправлені. Я використовую це як раз, щоб переконатися, що програма не заморожені. У теорії їх повинно бути стійкий потік імен у пресі>

); луна ("$ в <br/>");

)

)




?>

Цей шматок коду використовує PHP поштою () функцію. Це дуже потужний і простий у використанні функції. Пам'ятайте, що з великою владою приходить велика відповідальність. Намагайтеся не використовувати цю функцію для зла.

Як вручну включити користувача в SMF форум з використанням PHP

Опубліковано в SMF (Simple Forum машина) , PHP по ShortLikeAFox по 28 липня 2008

Цей конкретний приклад для SMF 1.1.5. Я не можу гарантувати це буде працювати з будь-який інший варіант.

Таким чином, ви виконаєте Simple Machine Forum Software і хочете, щоб вручну ввести користувач? Без проблем. Я знаю, що це проблема, схоже, дуже специфічних, але ідеї пояснюється тут може бути адаптована для інших типів форумів та інших базами даних програмних пакетів, таких як Wordpress. Перш ніж ми перейдемо, як саме це зробити, давайте подивимося, як Simple Machine Форуми відстежує користувачів. У базі даних SMF є таблиця, звана smf_members. Структура smf_members виглядає наступним чином:

Поле Тип Нуль

Ключ Умовчання Додатково
ID_MEMBER MEDIUMINT (8) непідписаних NO PRI NULL auto_increment
тетЬегИате 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
підлогу ТШУШТ (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 ТШУШТ (4) NO 0
showOnline ТШУШТ (4) NO 1
timeFormat VARCHAR (80) NO
підпис текст NO
timeOffset поплавець NO 0
аватар tinytext NO
pm_email_notify ТШУШТ (4) NO 0
karmaBad SMALLINT (5) непідписаних NO 0
karmaGood SMALLINT (5) непідписаних NO 0
usertitle tinytext NO
notifyAnnouncements ТШУШТ (4) NO 1
notifyOnce ТШУШТ (4) NO 1
notifySendBody ТШУШТ (4) NO 0
notifyTypes ТШУШТ (4) NO 2
memberIP tinytext NO
memberIP2 tinytext NO
secretQuestion tinytext NO
secretAnswer VARCHAR (64) NO
ID_THEME ТШУШТ (4) непідписаних NO 0
is_activated ТШУШТ (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

Поля ми повинні звернути увагу на наступне:

  • тетЬегИате - Self Explanitory.
  • dateRegistered - не є необхідним, але якщо не заповнені датою реєстрації виглядає як 31 грудня 1969. Дата зберігається в епоху позначки. Не знаю, як розрахувати позначки у вашій голові? Без проблем. Я використовую безкоштовний генератор знайти тут .
  • реальне ім'я - Повинен бути введений. Коли я не впевнений, що я просто повторюю тетЬегИате тут.
  • EmailAddress - Self Explanitory.
  • is_activated - повинен бути встановлений в 1, оскільки ми вручну активізації членів.
  • ID_POST_GROUP - Я не буду брехати. Я не впевнений, що це таке, але завжди здається, бути встановлений на 4. Так що .... Я завжди встановити його на 4. Не найкращий шлях до програми, але що поробиш?
  • Passwd - пароль, який ви хочете, щоб дати новий користувач. Неможливо зрозуміти, як туди потрапити, не дивлячись на документи SMF. Правильний код для шифрування пароля SMF для бази даних виглядає наступним чином:

($memberName).$password) $ Passwd = SHA1 (strtolower ($ тетЬегИате). $ Пароль)

У наведеній вище рядку коду, $ пароль фактичний пароль користувача.

Як це зробити:

/ / По-перше, підключитися до бази даних SMF

Приймаючою $ = "ім'я" / / ім'я хоста
$ Ім'я користувача = "Ім'я користувача" / / ім'я користувача Mysql
MyPassword $ = "пароль"; / / MySQL пароль
$ Імя_бази_данних = "Ім'я користувача" / / Ім'я бази даних

("cannot connect to server"); mysql_connect ("$ господар", "$ Ім'я користувача", "$ MyPassword"), або померти "(" Не вдається підключитися до сервера ");
("cannot select DB"); mysql_select_db ("$ імя_бази_данних") або померти ("не може вибрати БД");

$ ТетЬегИате = "Залізна людина";
$ Реальне ім'я = "Тоні Старк";
EmailAddress $ = "ironMan@ironMan.com";
Is_activated $ = 1;
ID_POST_GROUP $ = 4;

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

($memberName).$password); $ Пароль = SHA1 (strtolower ($ тетЬегИате). $ Пароль);

$ DateRegistered = 1216951200 / / 7-25-2008 2 ранку

$ Діегу = "INSERT INTO smf_members (тетЬегИате, реальне ім'я, EmailAddress, is_activated, ID_POST_GROUP, пароль, dateRegistered) VALUES ('$ тетЬегИате', '$ реальне ім'я', '$ EmailAddress', '$ is_activated', '$ ID_POST_GROUP', ' $ пароль ',' $ dateRegistered ");
("SMF Error 101.234 "); $ Результат = mysql_query ($ запиту) або померти ("Помилка SMF 101,234");

Це все є на нього!