[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: не получается отправить письма в цикле
intreb
использую код


 function send_mail($to, $thm, $html, $path)
{
$fp = fopen($path,"r");
if (!$fp)
{
print "fail $path ne procitati";
exit();
}
$file = fread($fp, filesize($path));
fclose($fp);

$boundary = "--".md5(uniqid(time()));
$headers .= "MIME-Version: 1.0\n";
$headers .="Content-Type: multipart/mixed; boundary=\"$boundary\"\n";

include "conf_sql2.php";
if(($stop)=="1"){
$headers .= "From: D - System testing...\r\n\r\n";}
if(($stop)=="0")
{ $headers .= "From: D <my.mail@gmail.com>\r\n\r\n";}
$multipart .= "--$boundary\n";
$kod = 'windows-1251';
$multipart .= "Content-Type: text/html; charset=$kod\n";
$multipart .= "Content-Transfer-Encoding: Quot-Printed\n\n";
$multipart .= "$html\n\n";

$message_part = "--$boundary\n";
$message_part .= "Content-Type: application/octet-stream\n";
$message_part .= "Content-Transfer-Encoding: base64\n";
$message_part .= "Content-Disposition: attachment; filename = \"".$path."\"\n\n";
$message_part .= chunk_split(base64_encode($file))."\n";
$multipart .= $message_part."--$boundary--\n";

if(!mail($to, $thm, $multipart, $headers))
{
exit("error3");
}
}



он отсылает сообшение в хтмл + нтмл в приложении.
мне нужно отправлять подписчикам в цикле, но тогда получаю ошибку

Fatal error: Cannot redeclare send_mail() (previously declared in /hom






Спустя 7 часов, 19 минут, 53 секунды (7.03.2012 - 05:36) Visman написал(а):
Функцию оберни
if (!function_exists('send_mail')) {
function send_mail($to, $thm, $html, $path) {
...
}
}

Спустя 4 минуты, 8 секунд (7.03.2012 - 05:41) Игорь_Vasinsky написал(а):
ну всякого я видел и вёрстку в функции и sql запрос, но проинклудить файл внутри.. браво -1е место.

Спустя 13 часов, 33 минуты, 46 секунд (7.03.2012 - 19:14) intreb написал(а):
Цитата (Visman @ 7.03.2012 - 02:36)
Функцию оберни
if (!function_exists('send_mail')) {
function send_mail($to, $thm, $html, $path) {
...
}
}

ошибку не выдаёт, но письмо отправляет только один раз.

Спустя 11 минут, 26 секунд (7.03.2012 - 19:26) Visman написал(а):
Функция должна создаваться один раз и вызываться много раз с разными параметрами.

У тебя же она видимо создается много раз и параметры завязаны на это создание.

Спустя 9 минут, 39 секунд (7.03.2012 - 19:35) intreb написал(а):
Цитата (Visman @ 7.03.2012 - 16:26)
Функция должна создаваться один раз и вызываться много раз с разными параметрами.

У тебя же она видимо создается много раз и параметры завязаны на это создание.

а подскажите пожалуйста как вынести за цикл ОПРЕДЕЛЕНИЕ функции а не саму функцию целиком? как её вынести и как вызывать в цикле?

Спустя 3 минуты, 40 секунд (7.03.2012 - 19:39) Visman написал(а):
Надо переписать функцию так, чтобы в ней остались только одинаковые действия для всех возможных ее вызовов.
Тогда функцию задаем в начале скрипта и на протяжениии всего скрипта вызываем ее с любым задуманным набором данных.

Спустя 7 минут, 29 секунд (7.03.2012 - 19:47) intreb написал(а):
Цитата (Visman @ 7.03.2012 - 16:39)
Надо переписать функцию так, чтобы в ней остались только одинаковые действия для всех возможных ее вызовов.
Тогда функцию задаем в начале скрипта и на протяжениии всего скрипта вызываем ее с любым задуманным набором данных.

правильно я понял?

написать:



 function send_mail($to, $thm, $html, $path)
{
то что не не надо в цикле
}


while($row = mysql_fetch_array($result))
{

if (!function_exists('send_mail')) {


function send_mail($to, $thm, $html, $path)
{



так? *вызывать так?

Спустя 5 минут, 34 секунды (7.03.2012 - 19:52) Visman написал(а):
Цитата (intreb @ 8.03.2012 - 00:47)
так? *вызывать так?

Нет. Вот так

function send_mail($to, $thm, $html, $path)
{
// код выполняемый в функции
}


while($row = mysql_fetch_array($result))
{
// задаем $to, $thm, $html, $path для данной стадии цикла

send_mail($to, $thm, $html, $path); // вызываем функцию
}

Спустя 11 минут, 59 секунд (7.03.2012 - 20:04) intreb написал(а):
не получается поделить. выдаёт exit("error3");

можно вообще убрать функцию, просто майл()?

Спустя 3 минуты, 36 секунд (7.03.2012 - 20:08) Visman написал(а):
intreb, ты автор, тебе виднее зачем вообще использовалась самописная функция отправки писем.

Спустя 3 минуты, 44 секунды (7.03.2012 - 20:11) intreb написал(а):
не я не автор

я взял тут:

http://php.su/articles/?cat=examples&page=060

несколько лет назад переделал он у меня работал без той формы и без цикла
теперь не пойму как упростить
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.