Как рассылать спам на php
Перейти к содержимому

Как рассылать спам на php

  • автор:

Отправка большого количества писем

Здесь нужно немного подумать. Вот, например, PHP-сценарий может выполняться после обновления страницы на дольше установленного лимита выполнения в апаче. Из этого следует, что 100K писем точно не удастся отослать одним обновлением. Для этого надо создать приблизительно такой скрипт:

  1. Разбить список адресов на более мелкие списки и отсылать каждый такой список каждый раз, после обновления страницы.
  2. Отсылка->обновление->Отсылка->обновление. и так далее

Отслеживать
51.2k 86 86 золотых знаков 266 266 серебряных знаков 505 505 бронзовых знаков
ответ дан 18 фев 2012 в 13:10
13.6k 13 13 золотых знаков 61 61 серебряный знак 122 122 бронзовых знака
Какова вероятность попадания писем в спам?
18 фев 2012 в 13:47

Фильтр спама работает по принципу блокирования IP, с которого рассылаются письма. Так как PHP — серверный язык, то IP будет одним. Для того, чтобы ваш IP на посчитали за спамерский, то проводить рассылку писем лучше раз в 48 или даже 72 часа.

18 фев 2012 в 13:59
Последнее предложение вероятно написано не правильно.
18 фев 2012 в 14:08
Почему же? Спам-фильтры блокируют рассылку по IP.
18 фев 2012 в 14:11
Только я один думаю что делать это на PHP — извращение.
18 фев 2012 в 14:31

  • php
  • sendmail
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.10.27.43697

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Массовая рассылка писем php?

Добрый день, имеется база mysql, в ней есть записи зарегистрированых пользователей, имеется форма
— Название темы
— Описание
Помогите сделать так, заполнил форму, при нажатие на кнопку «Отправить», чтоб высылалось всем пользователям. 3 день рожаю, не могу понять.

  • Вопрос задан более трёх лет назад
  • 2325 просмотров

Комментировать
Решения вопроса 0
Ответы на вопрос 2

Taraflex

Ищу работу. Контакты в профиле.
Используйте апи специализированных сервисов (кучи их) рассылки писем, иначе все в спам посыпется.
Ответ написан более трёх лет назад
Комментировать
Нравится 4 Комментировать

ThunderCat

ThunderCat @ThunderCat Куратор тега PHP

1) форма отправляет тему и описание методом пост в скрипт
2) скрипт получает тему и описание, выбирает из базы емэйлы всех прользователей в массив
3) проходим форичем по массиву, на каждый отправляем письмо с темой и описанием
4) обнаруживаем что все письма валятся в спам после отправки подряд 200 писем
5) обнаруживаем что письма больше не отправляются с шареда после отправки подряд 500 писем
6) ищем и находим себя в банлистах всех мэйлпровайдеров.
7) танцуем, вы великолепны!

Не надо делать каку, хотите спамить — юзайте внешние сервисы а ля мэйлчимп.

Ответ написан более трёх лет назад
Нравится 3 2 комментария

И что, нет никакой возможности организовать рассылку своими силами, даже паре сотен подписчиков, чтобы не попасть в спам и банн?

ThunderCat

ThunderCat @ThunderCat Куратор тега PHP

nick21, выделенный сервер со своим доменом и почтовым сервером, PHPMail настроить и рассылать. Гарантии нет, но возможно протянете какое-то время, если не спамить совсем уже бесполезную фигню, иначе пару жалоб на спам и бан.

Отправка СМС на php

а

SMS.BY делает все, чтобы разработчикам было удобно использовать API для интеграции с нашим сервисом.

Чтобы Вам было быстрее и проще сделать интеграцию, мы написали пример кода на Php, доступный на GitHub.
Кстати, в конце статьи Вас ждет видео с разбором отправки СМС на Php.

В данном репозитории содержится 4 файла:

SMS_BY . php
CountSmsParts . php
Transliterate . php
examples . php

SMS_BY.php — это базовый класс, содержащий все методы по отправке смс, проверку статусов, отправку запроса и так далее.

CountSmsParts.php — класс для подсчета длины строки с учетом кодировок ascii / unicode.

Если вы ранее не сталкивались с отправкой смс, то в целом должны помнить что русский символ требует 2 байта в unicode, поэтому длина смс на русском — 70 символов, а на английском — 140.

«lengths» => [
«ascii» => [ 160 , 306 , 459 , 628 , 785 , 942 , 1071 , 1224 , 1377 , 1530 ] ,
«unicode» => [ 70 , 134 , 201 , 252 , 315 , 378 , 469 , 536 , 603 , 670 ] ,
]

Но, в тоже время, если у Вас более 2 смс в одном сообщении, то длина будет уже менее 70 символов (68 если точнее), так как для отправки смс требуется добавление системной информации.

Это стоит учитывать при отправке длинных смс, или стараться делать смс короче.
Transliterate.php — как уже можно догадаться, класс по транслитерации русского текста в латиницу.
examples.php — содержит примеры вызова функций по подсчету длины смс-сообщения, а также транслитерации русского текста в английский.
Функция транслитерации также учитывает регистр, поэтому Вам не придется делать дополнительный ucfirst.

Итак, разберем основные моменты в examples.php:

В самом верху идет подключение классов.

include ( ‘SMS_BY.php’ ) ;
require_once ( ‘Transliterate.php’ ) ;
require_once ( ‘CountSmsParts.php’ ) .
// Код токена вы можете получить здесь: https://app.sms.by/user-api/token

$token = » ; // КОД_ВАШЕГО_ТОКЕНА
// Номер телефона для теста
$phone = » ; // НОМЕР ТЕЛ ДЛЯ ТЕСТА

После того, как Вы вставите свой токен и номер телефона, Вы сможете отправить себе тестовое сообщение (проверьте, что у вас включен CURL).

Код в example.php состоит из блоков if(false).

Вы можете выбрать какой именно метод вы хотите протестировать и поставить там if (true).

Например, отправка смс:

if ( false ) {
echo ( «Отправка простого sms-сообщения на номер: $phone » ) ;
/** Отправка простого сообщения: */
$sms = new SMS_BY ( $token ) ;
$res = $sms -> createSMSMessage ( ‘Моё сообщение’ ) ;
$message_id = $res -> message_id ;
$res2 = $sms -> sendSms ( $message_id , $phone ) ;
if ( $res2 == false ) {
echo ( «Во время отправки сообщения произошла ошибка» ) ;
} else {
echo ( «Сообщение успешно отправлено, его ID: sms_id> » ) ;
}
}

Меняем в блоке выше if(false) на if(true) вызываем и на указанный вами телефон будет доставлена смс.

Пример запуска из командной строки:

отправка смс на Php пример

Как вы видите в конце выводится сообщение об ошибке.

Это происходит, потому что у отправителя пока что нет одобренных Альфаимен (имен отправителя). Заявку на Альфаимя вы можете сделать в кабинете по ссылке: https://app.sms.by/alphanames

Смс, полученное на телефон:

photo_2021-04-01_12-05-445

Видео, в котором подробно описана отправка СМС на php можно посмотреть здесь.

2152

Своя рассылка на PHP

В интернете есть много бесплатных сервисов. В том числе и услуги по рассылке писем подписчикам. Некоторые из них очень хороши. Но раз уж они бесплатны, значит, тут же в письмах появляется реклама. Да и немалые формы для подписки с логотипом представителя услуг многих не устраивают.

Так почему бы не написать простенький движок для своей рассылки и отсылать письма своими силами?

Давайте разберемся, что нам для этого потребуется.

Для того чтоб посетители имели возможность подписаться на вашу рассылку, необходима форма для ввода адреса электронной почты. После ввода адрес надо запомнить. Давайте адреса будем сохранять в файле maillist.txt по одному адресу в строчке. После того, как адрес будет сохранен, давайте выведем соответствующее сообщение и отобразим форму для подписки еще одного адреса или удаления существующего. Вот собственно почти и все. Осталось добавить только возможность отправки писем. Для безопастности, давайте на возможность отправки писем поставим пароль — необходима форма для ввода пароля. Далее потребуются формы для заполнения адреса отправителя и темы, а также для самого текста. Ну и, наконец, сам скрипт, который будет отсылать письма. А теперь все по порядку.

Форма для ввода адреса электронной почты будет состоять только из окна для ввода адреса и кнопки для подтверждения:

Итак, в окне для ввода текста, с именем email и видимой длиной в 30 символов, будет вводиться адрес электронной почты. После нажатия на кнопку с надписью подписаться, адрес будет передан скрипту ras.php для занесения в базу рассылки.

Далее давайте рассмотрим скрипт ras.php, который будет сохранять адрес почты в файле, выводить сообщение о результате и формы для подписки и отписки. Скрипт можно исполнить совсем просто — сохранить адрес, вывести соответствующее сообщение. Но могут возникнуть проблемы: кто-то может случайно подписаться несколько раз, кто-то может допустить опечатку и ввести в поле адреса недопустимый символ. В таком случае база рассылки будет загрязняться, а неверные адреса станут приводить к ошибкам в работе скрипта. Вывод ясен — перед сохранением адреса следует проверить его на соответствие стандартам имен адресов электронных почтовых ящиков, а также на наличие в базе рассылки. Для того чтоб не рассматривать код по частям, я дам комментарии в самом коде:

$file = "maillist.txt"; // файл, содержащий адреса error_reporting(0); // запрещаем вывод сообщений о возможных ошибках function test_mail($char) // функция, проверяющая реальность адреса < if (preg_match("/^[_\.0-9a-z-]+@([0-9a-z][-0-9a-z\.]+)\.([a-z]$)/", $char)) return true; return false; > // получаем введеный в форму адрес с символами в нижнем регистре $email = trim(strtolower($email)); function copy_mail($char) // проверяем, есть ли такой адрес в базе < global $file; $list = file($file); for ($i = 0; $i < sizeof ($list); $i++) if ($char == trim($list[$i])) return true; return false; >echo "
"; if (is_file($file)) // далее проверяем адрес вышеописаными функциями < $maillist = file($file); if (!$email == '') < if (test_mail($email)) < if (!copy_mail($email)) < $maillist[] = "\n$email"; print "E-mail: $email добавлен базу рассылки
"; > else print "E-mail: $email уже есть в базе
"; > else print "E-mail: $email не сушествует
"; > else print "
"; > else print "Не найден файл $file ! Пожалуйста сообщите мне о ошибке."; // выводим на экран форму с предложением подписки и отписки echo "
Подписаться на рассылку"; echo "Введите mail: "; echo "


"; echo "Отписаться от рассылки
Введите mail:"; echo " "; // если пользователь решил отписаться - удаляем введеный адрес $flag = false; $fw = fopen($file, "w"); for ($i = 0; $i < sizeof ($maillist); $i++) if (trim(strtolower($delmail)) == trim(strtolower($maillist[$i]))) < if (!$delmail == '') < print "
$delmail удален из базы рассылки
"; $flag = true; > > else fputs($fw, $maillist[$i]); // введеного адреса в базе нет fclose($fw); if (!$delmail == '') if (!$flag) print "
$delmail не найден в базе рассылки
";

Вот наш код сохранения и удаления адресов готов.

Теперь надо позаботиться о средствах отправки почты. Не будем же мы через Outlook отсылать. Как уже говорилось, защитим возможность отправки паролем, который будем вводить на специальной форме:

Поле для ввода с именем pass и будет служить для ввода пароля. После нажатия на кнопку с надписью войти, пароль будет передан скрипту out.php:

$subject = "Рассылка моего сайта"; // тема рассылки $fromemail = "мое@мыло"; // ваш адрес (для ответов) $file = "maillist.txt"; // список адресов подписчиков $password = "secretpassword"; // ваш пароль для рассылки if ($_POST['pass'] == $password) // если пароль ввели правильный // то выводим форму с полями для ввода: // адрес отправителя, текст письма, тело письма // кнопку для отправления // после нажатия на кнопку, передаем данные скрипту send.php < echo "
"; echo "адрес отправителя

"; echo "тема письма
"; echo "
текст письма:
"; echo "
"; print "В базе". sizeof($maillist) ." адресов

"; for ($i = 0; $i < sizeof ($maillist); $i++) print $maillist[$i]. "
"; > // если пароль неверный - просим ввести еще раз else echo " ";

Осталось рассмотреть только один скрипт — тот самый, который будет отсылать почту:

$odr = "\n\n\n Для отказа от подписки воспользуйтесь ссылкой\n"; $homepage = "http://адрес.сайта/ras.php"; error_reporting(0); $subject = $HTTP_POST_VARS["subject"]; $body = $HTTP_POST_VARS["body"]; $subject = stripslashes($subject); $body = stripslashes($body); $file = "maillist.txt"; $maillist = file($file); print "В базе". sizeof($maillist) ." адресов
"; for ($i = 0; $i < sizeof ($maillist); $i++) < #echo($maillist[$i]."
"); mail($maillist[$i], $subject, $body ."$odr $homepag?delmail=$maillist[$i]", "From: "); > echo "Готово!";

Тут все просто: получаем значения, введенные в предыдущюю форму, и в цикле отправляем их по очереди на каждый из адресов.

  • Универсальная рассылка почты на PHP по MySQL базе пользователей
  • Вставка изображения в письмо на PHP
  • Отправка почты по шаблону на PHP
  • Удалить все сообщения из почтового ящика
  • Настройки SPF и DKIM чтобы письма не попадали в спам
  • email рассылка по шаблону на PHP

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *