Добрый день,
есть скрипт рассылки писем - описание: скрипт работает следующим образом: есть список мыл с которых нужно отправлять письма и есть список мыл кому отправлять. Так же есть несколько вариантов писем для отправки. Скрипт берёт ящик, с которого нужно отправлять, заходит в него, берёт случайным образом текст письма, создаёт сообщение и отправляет его заданному в настройках количеству подписчиков.
Только он вылетает с ошибками, может быть кто то может подправить или есть подобный скрипт.
<?php
// скрипт осуществляет рассылку сообщений на различные email
$xhe_host ="127.0.0.1:7010";
// The following code is required to properly run XWeb Human Emulator
require("../../Templates/xweb_human_emulator.php");
// //////////////////////// настройки скрипта /////////////////////////
// мыла с которых отправлять
$path_from = "data/from_mails.txt";
// мыла на которые отправлять
$path_to = "data/to_mails.txt";
// обработанные
$path_res_from = "res/from_mails.txt";
$path_res_to = "res/to_mails.txt";
// путь к папке с письмами
$path_messages = "data/messages/";
// прокси
$str_proxy_path = "data/proxy.txt";
// user agent строки
$useragents = file("data/useragent.txt");
// путь к файлу с использованными проксями
$path_to_use_proxy = "res/use_proxy.txt";
// количество ящиков на которые отправлять
$to_mails_count = 3;
// скрипт работает в режим отладки
$dbg = true;
// //////////////////////// дополнительные модули ///////////////
// функции
require_once("tools/functions.php");
// accept fucntions
require_once("tools/accept_functions.php");
// /////////////////////// скрипт ///////////////////////////////////////////
debug_mess(" скрипт запустили");
// устанавливаем прокси
set_proxy();
if (!$i_cur_proxy)
{
// выходим из скрипта
$app->quit();
}
// получить в массив все данные
$a_mails_from = file($path_from,FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES);
$a_mails_to = file($path_to,FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES);
// получить все файлы в папке
$str_files = $folder->get_all_items($path_messages);
// получить массив путей
$arr_files = explode("\n", $str_files);
$a = 0;
// пройтись по всем аккаунтам
foreach($a_mails_from as $str_mail)
{
// перейти на mail.ru
$browser->navigate("
Для просмотра ссылки Войди или Зарегистрируйся");
// войти в аккаунт
$a_mail = explode(";" ,$str_mail);
$a_mail_lg = explode("@",$a_mail[0]);
$input->set_value_by_name("Login",$a_mail_lg[0]);
$listbox->select_text_by_name("Domain",$a_mail_lg[1], false);
$input->set_value_by_name("Password",$a_mail[1]);
$button->click_by_name("mailbox__auth__button");
// отправка сообщений на k разных почтовых ящиков
for ($k = 0; $k < $to_mails_count; $k++)
{
// выбираем рамдомно одно из сообщений
$mes_name = trim($arr_files[rand(0,count($arr_files)-1)]);
// получаем название письма - это будет тема сообщения
$mes_subj = str_replace(".txt", "", $file_os->get_name($mes_name));
// получаем сам текст сообщения
$mes_content = $textfile->read_file($mes_name);
sleep(2);
// переходим в написать письмо
$anchor->click_by_inner_text("Написать ");
sleep(3);
// проверить отправили мы на все мыла или нет
if ($a >= count($a_mails_to))
{
debug_mess("<b>Закончились все мыла куда отправлять!</b>");
$app->quit();
}
// задать мыло получателя
$textarea->set_focus_by_attribute("id","sentmsgab_compose_to",true);
$textarea->set_value_by_name_by_form_name("To", trim($a_mails_to[0]), "Compose");
debug_mess("отправляем с ".$a_mail[0]." на ".trim($a_mails_to[$a]));
sleep(3);
// тема
$input->set_focus_by_attribute("id","sentmsgab_compose_subj",true);
$input->set_value_by_name_by_form_name("Subject", $mes_subj,"Compose");
sleep(3);
// получить номер фрейма
$ifr = get_frame_number();
// отчистить от лишнего текста
$body->set_inner_html_by_number(0, "", $ifr);
// само сообщение
while($body->get_inner_html_by_number(0, $ifr) == "")
{
//echo "на входе : $ifr<br>";
if ($body->get_name_by_number(0, $ifr) == "")
{
$ifr = get_frame_number();
//echo "изменили на $ifr<br>";
}
// задать тело письма
$body->set_inner_html_by_number(0,$mes_content,$ifr);
$frame->set_body_by_number($ifr,$mes_content);
sleep(5);
}
// отправить
$anchor->click_by_inner_text("Отправить");
sleep(5);
// перепишем файл и перенесем в папку res использованный email
rewrite($a_mails_to[$a], $path_to, $path_res_to);
$a++;
}
// нажимаем кнопку выход
$anchor->click_by_attribute("id","PH_logoutLink", true);
sleep(3);
// меняем прокси
//удаляем прокси из файла
$proxies = file_get_contents($str_proxy_path);
$proxies = str_replace($i_cur_proxy."\r\n", "", $proxies);
$textfile->write_file($str_proxy_path, $proxies, 60);
// записываем прокси в файл с использованными проксями
$textfile->add_string_to_file($path_to_use_proxy, $i_cur_proxy."\r\n");
// закроем все вкладки браузера
$browser->stop();
sleep(1);
$browser->close_all_tabs();
sleep(1);
$browser->navigate("about:blank");
sleep(1);
// удаляем прокси
$browser->disable_proxy("");
$i_cur_proxy = "";
sleep(5);
// устанавливаем прокси
set_proxy();
if (!$i_cur_proxy)
{
// выходим из скрипта
$app->quit();
}
// перенёс мыло с которого отправляли в отработанные
rewrite($str_mail,$path_from, $path_res_from);
debug_mess("<b>Закончили отправлять письма с" . $a_mail[0] . "</b><br>");
}
debug_mess(" скрипт закончил работу<br>");
// Quit
$app->quit();
?>