Как отправлять электронную почту, используя массовые PHP

Добавлено в PHP путем ShortLikeAFox по 19 сентября 2008

Так что вы хотите отправить сообщение массы или вы хотите создать программу, которая может быть быстро изменена на отправить несколько массу писем. PHP делает это легко. В этом примере я буду считать, что у вас есть список адресов электронной почты вы хотите отправить сообщение на некоторых. Я также предполагаю, что вы храните этот список в базу данных, но этот код может быть легко скорректирована с использованием либо жестко список адресов электронной почты или список из другого источника.

<? PHP

/ / Первые подключения к базе данных, которая содержит информацию об адресе электронной почты.
$ USER = "Пользователей";
$ принимающей = "Host";
$ Password = "пароль";
$ DATABASE = "База данных";

( "Couldn’t connect to server" ); $ cxn = mysql_connect ($ пребывания, пользователь $, $ Password) или умереть ( "Невозможно соединиться с сервером");
mysql_select_db ($ данных);

/ / Запрос таблица, которая содержит адреса электронной почты. Введите в свой стол именем здесь ...
$ запрос = "SELECT * FROM theEmailAddresses";
( mysql_error ($cxn)); $ результат = mysql_query ($ запроса, $ cxn) или умереть (mysql_error ($ cxn));
$ nrows = mysql_num_rows ($ результата);

/ / Кто отправитель будет называться. Вы можете поставить то, что нужно здесь, но на самом деле это не так уж этических поставить адрес электронной почты, который вы не контролируем здесь.
от $ = "From: me@mydomain.com";
/ / Стандартное сообщение темы
$ SUBJECT = "Что нового в mydomain.com";
/ / Сообщение
$ MESSAGE = "Привет ценят друг,

Теперь мы продаем печенье на mydomain.com. Обязательно проверьте сами!
С уважением,
мне ";

/ / Мы уже сомнение все адреса электронной почты. Теперь нам нужно просто отправить письмо
0 ; $i < $nrows; $i ++ ){ за ($ i = 0; $ I <$ nrows; $ I + +) (

$ подряд = mysql_fetch_assoc ($ результата);
Экстракт ($ строка);
/ / $ Заменить электронную почту с любого столбца адресов называется
до $ = "$ электронной почте";
/ / Отправить письмо на каждое письмо в базе данных
если (почта ($ к $ при условии, $ сообщении от $)) (

/ / Распечатать имя писем, которые были успешно отправлены. Я использую этот только для того, чтобы убедиться, что программа не заморожены. В теории их должно быть постоянный поток имен в печати>

); эхо ( "$ до <br/>");

)

)




?>

Этот код использует PHP почте () функцию. Это очень мощный и простой в использовании функции. Помните, что с большой властью приходит большая ответственность. Старайтесь не использовать эту функцию, для зла.

Как вручную включить пользователя SMF форум Использование PHP

Опубликовано в SMF (Simple Машина форум), PHP на ShortLikeAFox от 28 июля 2008

Этот конкретный пример для SMF 1.1.5. Я не могу гарантировать это будет работать с любой другой версии.

Таким образом вы запускаете Простые машины форум программного обеспечения и хотят ввести пользователя? Нет проблем. Я знаю, эта проблема представляется весьма конкретной, но идеи, пояснил здесь могут быть адаптированы для других типов форумов и других баз данных по инициативе программных пакетов, таких, как Wordpress. Перед тем как попасть в точности, как это сделать, давайте взглянем на то, как простые машины Форумы отслеживает пользователей. В SMF данных есть таблицы называется smf_members. Smf_members структура выглядит следующим образом:

Поле Печатать Нуль

Ключ По умолчанию Дополнительные
ID_MEMBER mediumint (8) неподписанными НЕТ PRI NULL auto_increment
memberName VARCHAR (80) НЕТ MUL
dateRegistered INT (10) неподписанными НЕТ MUL 0
должности, mediumint (8) неподписанными НЕТ MUL 0
ID_GROUP SMALLINT (5) неподписанными НЕТ MUL 0
lngfile tinytext НЕТ MUL
lastLogin INT (10) неподписанными НЕТ MUL 0
realName tinytext НЕТ
instantMessages SMALLINT (5) НЕТ 0
unreadMessages SMALLINT (5) НЕТ 0
buddy_list Текст НЕТ
pm_ignore_list Текст НЕТ
messageLabels Текст НЕТ
пароль VARCHAR (64) НЕТ
emailAddress tinytext НЕТ
personalText tinytext НЕТ
пол tinyint (4) неподписанными НЕТ 0
Дата рождения свидание НЕТ MUL 0001-01-01
websiteTitle tinytext НЕТ
websiteUrl tinytext НЕТ
местонахождение tinytext НЕТ
ICQ tinytext НЕТ
AIM VARCHAR (16) НЕТ
YIM VARCHAR (32) НЕТ
MSN tinytext НЕТ
hideEmail tinyint (4) НЕТ 0
showOnline tinyint (4) НЕТ 1
timeFormat VARCHAR (80) НЕТ
подпись Текст НЕТ
timeOffset поплавковый НЕТ 0
Аватара tinytext НЕТ
pm_email_notify tinyint (4) НЕТ 0
karmaBad SMALLINT (5) неподписанными НЕТ 0
karmaGood SMALLINT (5) неподписанными НЕТ 0
usertitle tinytext НЕТ
notifyAnnouncements tinyint (4) НЕТ 1
notifyOnce tinyint (4) НЕТ 1
notifySendBody tinyint (4) НЕТ 0
notifyTypes tinyint (4) НЕТ 2
memberIP tinytext НЕТ
memberIP2 tinytext НЕТ
secretQuestion tinytext НЕТ
secretAnswer VARCHAR (64) НЕТ
ID_THEME tinyint (4) неподписанными НЕТ 0
is_activated tinyint (3) неподписанными НЕТ 1
validation_code VARCHAR (10) НЕТ
ID_MSG_LAST_VISIT INT (10) неподписанными НЕТ 0
additionalGroups tinytext НЕТ
smileySet VARCHAR (48) НЕТ
ID_POST_GROUP SMALLINT (5) неподписанными НЕТ MUL 0
totalTimeLoggedIn INT (10) неподписанными НЕТ 0
passwordSalt VARCHAR (5) НЕТ

Поля мы должны обращать внимание на:

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

($memberName).$password) $ пароль = SHA1 (strtolower ($ memberName). $ пароль)

В приведенной выше строке кода, $ пароля пользователя фактический пароль.

Как это сделать:

/ / Во-первых, подключение к базе данных SMF

$ принимающей = "имя"; / / Имя хоста
Имя пользователя $ = "Имя пользователя"; / / MySQL имя пользователя
$ MyPassword = "пароль"; / / MySQL пароль
$ DB_NAME = "Имя пользователя"; / / имя базы данных

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

$ memberName = "ironMan";
$ realName = "Тони Старка";
$ emailAddress = "ironMan@ironMan.com";
$ is_activated = 1;
$ ID_POST_GROUP = 4;

$ Password = "Tony1234";

($memberName).$password); $ Password = SHA1 (strtolower ($ memberName). $ паролем);

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

$ запрос = "INSERT INTO smf_members (memberName, realName, emailAddress, is_activated, ID_POST_GROUP, пароль, dateRegistered) VALUES ( '$ memberName', '$ realName', '$ emailAddress',' $ is_activated ',' $ ID_POST_GROUP ',' $ пароль ',' $ dateRegistered ') ";
("SMF Error 101.234 "); $ результат = mysql_query ($ запроса) или умереть ( "Ошибка SMF 101,234");

Это все есть в этом!