Добрый день,
есть скрипт рассылки писем - описание: скрипт работает следующим образом: есть список мыл с которых нужно отправлять письма и есть список мыл кому отправлять. Так же есть несколько вариантов писем для отправки. Скрипт берёт ящик, с которого нужно отправлять, заходит в него, берёт случайным образом текст письма, создаёт сообщение и отправляет его заданному в настройках количеству подписчиков.
Только он вылетает с ошибками, может быть кто то может подправить или есть подобный скрипт.
<?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();
?>