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')) { |
ошибку не выдаёт, но письмо отправляет только один раз.
Спустя 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
несколько лет назад переделал он у меня работал без той формы и без цикла
теперь не пойму как упростить
я взял тут:
http://php.su/articles/?cat=examples&page=060
несколько лет назад переделал он у меня работал без той формы и без цикла
теперь не пойму как упростить