|
|
|
| использую код
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
|
| |
|
|
|
|
|
|
|
для: celovec
(07.03.2012 в 00:53)
| | У вас производится попытка второй раз переопределить функцию send_mail(), определение функции нужно вынести из цикла. | |
|
|
|
|
|
|
|
для: cheops
(07.03.2012 в 13:25)
| | а подскажите пожалуйста как вынести за цикл ОПРЕДЕЛЕНИЕ функции а не саму функцию целиком? | |
|
|
|
|
автор: ..... (07.03.2012 в 20:41) |
|
|
для: celovec
(07.03.2012 в 20:17)
| | возможно где-то дважды срабатывает include() ?если функция определена один раз
, тогда можно использовать require_once() вместо include() | |
|
|
|
|
|
|
|
для: .....
(07.03.2012 в 20:41)
| | нет я его убрал. я пробовал как выговорите только для этого скрипта. тогда ошибку не выдаёт но письмо приходит один раз | |
|
|
|
|
автор: ..... (07.03.2012 в 20:49) |
|
|
для: celovec
(07.03.2012 в 20:43)
| | сама функция это и есть определение , оно должно быть выполнено только один раз, а в цикле должны быть только вызовы функции, т.е.
send_mail($кому, $зачем, $чего, $счем); | |
|
|
|
|
|
|
|
для: .....
(07.03.2012 в 20:49)
| | не получается поделить. выдаёт exit("error3");
можно вообще убрать функцию, просто майл()? | |
|
|
|
|
автор: ..... (07.03.2012 в 21:41) |
|
|
для: celovec
(07.03.2012 в 21:04)
| | > просто майл()?
Возможно, почти такое-же колличество кода
, Но не оптимально и разбираться удобнее когда нужно в функции а когда нужно в цикле , чем в одной большой каше.
код который вы привели это только определение функции, часть которого вынесена в другой файл
По идее дальше по коду должно быть что-то вроде
//<?
foreach($spisok AS $klient){
send_mail($klient['addr'], $thm.$klient['name'], $html, $path);
}
|
| |
|
|
|
|
автор: ..... (07.03.2012 в 21:57) |
|
|
для: .....
(07.03.2012 в 21:41)
| | хотя шут его знает что оптимальнее из вашего изложения сути сей злонамеренной рассылки.
Если всем один и тот-же файл хотите рассылать, то его считывание и base64_encode() оптимальнее вообще вынести из этой функции и из цикла. Вобщем тогда он должен обрабатываться только один раз, или вызовом ещё одной функции до цикла, или непосредственно в скрипте тоже перед циклом. | |
|
|
|