есть такой скрипт Код (Text): <?php echo "<font size=\"-1\"><hr><form method=\"POST\" action=\"send.php\">"; echo "your adress<br><input type=\"text\" name=\"fromemail\" value=\"$fromemail\" size=\"25\"><br>"; echo "Theme<br><input type=\"text\" name=\"subject\" value=\"$subject\" size=\"50\">"; echo "<br>Text:<br><textarea name=\"body\" rows=\"8\" cols=\"50\"></textarea>"; echo "<br><input type=\"submit\" value=\"Send\"></form></font>"; for ($i = 0; $i < sizeof ($maillist); $i++) print $maillist[$i]. "<br>"; $homepage = ""; 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 "to base". sizeof($maillist) ." adress<br>"; for ($i = 0; $i < sizeof ($maillist); $i++) { #echo($maillist[$i]."<br>"); mail($maillist[$i], $subject,$body ."$odr $homepag $maillist[$i]", "From: $fromemail"); } Как правильно заменить отправку через mail() на отправку через smtp mail самое главное что бы работало не надо ничего предлогать изменить. И ещё вопрос этот скрипт работает в цикле, при подключении к смтп серверу он будет при каждом цикле заново подключаться или он будет работать не закрывая сокет? пожалуйста помогите очень нужно возможно заплачу за хороший ответ!!!
Дело в том что этот скрипт работает в одиночку без конфигов и прочих файлов, просто нужно загнать в цикл отправку сообщений на смтп сервер то есть просто заменить локальную отправку через mail() на smtp или отправлять массивами. Я даже не знаю как лучше, подскажите пожалуйста.
http://mails-1.ru/ тут вся информация о версии php. Я там ненашёл mail() и send_mail() там тоже нету!((
А где изменить поведение функции mail()? где этот php.ini на простом сервере? Добавлено спустя 10 минут 23 секунды: Попытался воткнуть кусок кода и подключиться к смтп серверу нифига не получилось Код (Text): <?php $mhSmtpMail_Server = "***"; $mhSmtpMail_Port = "25"; $mhSmtpMail_Username = "***"; $mhSmtpMail_Password = "******"; $mhSmtpMail_From = "***"; { global $mhSmtpMail_Server, $mhSmtpMail_Port, $mhSmtpMail_Username, $mhSmtpMail_Password; $mhSmtpMail_localhost = "localhost"; $mhSmtpMail_newline = "\r\n"; $mhSmtpMail_timeout = "30"; $smtpConnect = fsockopen($mhSmtpMail_Server, $mhSmtpMail_Port, $errno, $errstr, $mhSmtpMail_timeout); $smtpResponse = fgets($smtpConnect, 515); if(empty($smtpConnect)) { $output = "Failed to connect: $smtpResponse"; return $output; } else { $logArray['connection'] = "Connected: $smtpResponse"; } fputs($smtpConnect, "HELO $mhSmtpMail_localhost" . $mhSmtpMail_newline); $smtpResponse = fgets($smtpConnect, 515); $logArray['heloresponse'] = "$smtpResponse"; fputs($smtpConnect,"AUTH LOGIN" . $mhSmtpMail_newline); $smtpResponse = fgets($smtpConnect, 515); $logArray['authrequest'] = "$smtpResponse"; fputs($smtpConnect, base64_encode($mhSmtpMail_Username) . $mhSmtpMail_newline); $smtpResponse = fgets($smtpConnect, 515); $logArray['authmhSmtpMail_username'] = "$smtpResponse"; fputs($smtpConnect, base64_encode($mhSmtpMail_Password) . $mhSmtpMail_newline); $smtpResponse = fgets($smtpConnect, 515); $logArray['authmhSmtpMail_password'] = "$smtpResponse"; fputs($smtpConnect, "MAIL FROM: $mhSmtpMail_Username" . $mhSmtpMail_newline); $smtpResponse = fgets($smtpConnect, 515); $logArray['mailmhSmtpMail_fromresponse'] = "$smtpResponse"; fputs($smtpConnect, "RCPT TO: $to" . $mhSmtpMail_newline); $smtpResponse = fgets($smtpConnect, 515); $logArray['mailtoresponse'] = "$smtpResponse"; fputs($smtpConnect, "DATA" . $mhSmtpMail_newline); $smtpResponse = fgets($smtpConnect, 515); $logArray['data1response'] = "$smtpResponse"; fputs($smtpConnect, "Subject: $subject\r\n$headers\r\n\r\n$message\r\n.\r\n"); $smtpResponse = fgets($smtpConnect, 515); $logArray['data2response'] = "$smtpResponse"; fputs($smtpConnect,"QUIT" . $mhSmtpMail_newline); $smtpResponse = fgets($smtpConnect, 515); $logArray['quitresponse'] = "$smtpResponse"; } echo "<font size=\"-1\"><hr><form method=\"POST\" action=\"index.php\">"; echo "your adress<br><input type=\"text\" name=\"fromemail\" value=\"$fromemail\" size=\"25\"><br>"; echo "Theme<br><input type=\"text\" name=\"subject\" value=\"$subject\" size=\"50\">"; echo "<br>Text:<br><textarea name=\"body\" rows=\"8\" cols=\"50\"></textarea>"; echo "<br><input type=\"submit\" value=\"Send\"></form></font>"; for ($i = 0; $i < sizeof ($maillist); $i++) print $maillist[$i]. "<br>"; $homepage = ""; error_reporting(0); $file = "maillist.txt"; $maillist = file($file); print "to base". sizeof($maillist) ." adress<br>"; for ($i = 0; $i < sizeof ($maillist); $i++) { #echo($maillist[$i]."<br>"); function MailSmtp($maillist[$i], $subject,$body ."$odr $homepag $maillist[$i]", "From: $fromemail"); } ?>
В папке libs должен быть ZendFramework Код (PHP): function ZendSendmail($server, $port, $login, $password, $from_name, $to, $subject, $text) { require_once 'libs/Zend/Config.php'; require_once 'libs/Zend/Mail.php'; require_once 'libs/Zend/Config/Ini.php'; if (!empty($server)) { require_once 'libs/Zend/Mail/Transport/Smtp.php'; $transport = new Zend_Mail_Transport_Smtp($server, array( 'port' => $port, 'auth' => 'login', 'username' => $login, 'password' => $password )); Zend_Mail::setDefaultTransport($transport); } $mail = new Zend_Mail('windows-1251'); $mail->setFrom($login, $from_name); $mail->addTo($to, $to); $mail->setSubject($subject); $mail->setBodyText($text); return $mail->send(); } Функция отправляет письмо через любой SMTP, хоть локальный хоть внешний
А да ладно фигня тот скрипт я нашёл рабочий классный сделал логи всё работает. так же там можно добавлять бесконечное количество получателей просто дублируя этот кусочек Код (Text): fputs($smtp_conn,"RCPT TO: $mail"); $data = get_data($smtp_conn); Сейчас мне нужна помошь немножко по другому. RCPT TO это SMTP запрос на добавление получателя его можно без конца дублировать. Проблема в том что RCPT TO выполняеться один раз. Думал всю ночь и пришло несколько идей 1- Запихнуть в массив всех получателе и продублировать RCPT TO в документе в каждый из них запихнуть этот массив 2- Либо при получении ответа от сервера if заменить $mail на следующий адресс или строку из документа есть ещё варианты???