[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: PHP Скрипт для отправки почты
Vitalik010979
Админ ПОМОГИ У меня PHP скрипт для отправки письма на почту заборохлил Он РАБОТАЕТ но вложения файлов приходят пустыми 0кб
Вот Скрипт
Свернутый текст
<?[SPAN=darling]php[/SPAN] 
$message_in_min = 10000;
$mode = $HTTP_POST_VARS['mode'];

switch($mode){
case 'send':
if(isset($HTTP_POST_FILES['filename']['tmp_name'])){
$base_name = $HTTP_POST_FILES['filename']['name'];
$f = fopen($HTTP_POST_FILES['filename']['tmp_name'],"rb");
$attach = base64_encode(fread($f,filesize($HTTP_POST_FILES['filename']['tmp_name'])));
$isfile = 1;
}
else {$isfile = 0;}
# Проверки ################################################## ###############
$from = $HTTP_POST_VARS['from'];
if(empty($from)){echo("Неуказан адрес отправителя");exit;}
else if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i",$from)){echo("$from - не верный адрес отправителя"); exit;}
$fromname = @$HTTP_POST_VARS['fromname'];
if(isset($fromname)){$from = $fromname." <$from>";}
$subject = $HTTP_POST_VARS['subject'];
$subject = htmlspecialchars(stripslashes($subject));
if(!$subject){echo("Опять же, кто будет писать тему сообщения?");}
$type = $HTTP_POST_VARS['type'];
$message = $HTTP_POST_VARS['message'];
if($type == 'text'){$message = htmlspecialchars(stripslashes($message));}
if(!$message){echo("Короче, нужно что то написать. Где сообщение-то?"); exit;}
################################################## ##########################
$to_arr = file(@$HTTP_POST_FILES['to']['tmp_name']);
// print_r($to_arr);exit;
$to_arr = array_unique($to_arr);
$i = 0;
$current_message= 0;
$num_send = 0;
$num_bad = 0;
$num_error= 0;
while(isset($to_arr[$i])){
$to_arr[$i] = trim($to_arr[$i]);
if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i",$to_arr[$i])){
echo($to_arr[$i].' - голимый адрес, я на его отправлять ничего не собираюсь'."<br>\n");
$num_bad++;
}
else{
if(sendemail($from,$to_arr[$i],$subject,$message,$type)){
echo('Сообщение на '.$to_arr[$i]." отправлено<br>\n"); flush();
$num_send++;
}
else{$num_error++;}
}

$current_message++;
if($current_message == $message_in_min){
$current_message = 0;
echo('Отправлено '.$message_in_min.' соообщений. Пауза 60 сек.'."<br>\n");
flush();
sleep(30);
echo('<!---->'."\n");
flush();
sleep(30);
}
$i++;
}
echo('<hr size="1" color="#000000">Рассылка завершена!<br>'."\n");
echo('
<b>Отправлено : '
.$num_send.'</b>
<b>Ошибок связи: '
.$num_error.'</b>
<b>Плохих email: '
.$num_bad.'</b>
<hr size="1" color="#000000">
'
);
break;
default:
echo('
<div align="center">
<h1>Рассылка писем</h1>
<form method="post" enctype="multipart/form-data">
<table align="center" border="0">
<tr>
<td align="right" bgcolor="#EBEBEB"><strong>От кого (Имя):</strong></td>
<td><input type="Text" class="inp" name="fromname" value="" size="30"> * - Не обязательно. Например, Пупкин И.И.</td>
</tr>
<tr>
<td align="right" bgcolor="#EBEBEB"><strong>От кого (Email):</strong></td>
<td><input type="Text" class="inp" name="from" value="" size="30"> * - Только email адрес</td>
</tr>
<tr>
<td align="right" bgcolor="#EBEBEB"><strong>Кому:</strong></td>
<td><input type="File" name="to" class="inp" size="68"></td>
</tr>
<tr>
<td align="right" bgcolor="#EBEBEB"><strong>Тема:</strong></td>
<td><input type="Text" class="inp" name="subject" value="" size="80"></td>
</tr>
<tr>
<td valign="top" align="right" bgcolor="#EBEBEB"><strong>Сообщение:</strong></td>
<td><textarea name="message" rows="10" cols="82" class="inp"></textarea></td>
</tr>
<tr>
<td valign="top" align="right" bgcolor="#EBEBEB"><strong>Прикрепить файл:</strong></td>
<td><input type="file" name="filename" class="inp" size="68"></td>
</tr>

<tr>
<td align="right" bgcolor="#EBEBEB"><strong>Формат</strong></td>
<td>

<table width="100%">
<tr>
<td width="20"><input class="inp" type="Radio" name="type" value="text" checked></td>
<td width="40">text </td>
<td width="20"><input class="inp" type="Radio" name="type" value="html"></td>
<td width="40">html</td>
<td align="right"><input type="Hidden" name="mode" value="send"><input type="Submit" class="inp" value="Отправить"></td>
</tr>
</table>

</td>
</tr>
<tr>
<td bgcolor="#EBEBEB"></td>
<td><hr size="3" color="#F7F7F7"></td>
</tr>
</table>
</form>
</div>
'
);
break;
}

function sendemail($from,$to,$subject,$message,$type){
$bound = time().'SPB';
global $attach, $base_name, $isfile;

$sep = chr(13).chr(10); // Разделитель строк заголовка
switch($type){
case 'text':
$headers = "From: ".$from.$sep;
$headers.= "X-Priority: 3".$sep;
$headers.= "X-MSMail-Priority: Normal".$sep;
$headers.= "X-Mailer: PHP/".[SPAN=darling]phpversion[/SPAN]().$sep;
$headers.= "MIME-Version: 1.0".$sep;
$headers.= "Content-Type: multipart/mixed; boundary=\"".$bound."\"".$sep.$sep;

$body = "--$bound".$sep;
$body.= "Content-type: text/plain; charset=\"windows-1251\"".$sep;
$body.= "Content-Transfer-Encoding: 8bit".$sep.$sep;
$body.= $message.$sep;

if($isfile == 1){
$body.= "$sep$sep--$bound".$sep;
$body.= "Content-Type: application/octet-stream;";
$body.= "name=\"".basename($base_name)."\"".$sep;
$body.= "Content-Transfer-Encoding:base64".$sep;
$body.= "Content-Disposition:attachment".$sep.$sep;
$body.= $attach.$sep;
}
// $body.="$bound--".$sep.$sep;
break;
case 'html':
$headers = "From: ".$from.$sep;
$headers.= "X-Priority: 3".$sep;
$headers.= "X-MSMail-Priority: Normal".$sep;
$headers.= "X-Mailer: PHP/".[SPAN=darling]phpversion[/SPAN]().$sep;
$headers.= "MIME-Version: 1.0".$sep;
$headers.= "Content-Type: multipart/mixed; boundary=\"".$bound."\"".$sep.$sep;

$body = "--$bound".$sep;
$body.= "Content-type: text/html; charset=\"windows-1251\"".$sep;
$body.= "Content-Transfer-Encoding: 8bit".$sep.$sep;
$body.= $message.$sep;

if($isfile == 1){
$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";
}
// $body.="$bound--".$sep.$sep;
break;
default:
echo('<center><b>Неверный параметр типа письма.</b></center>');
break;
}
if(mail($to,$subject,$body,$headers)){return true;}
else{return false;}
}

?>




Спустя 3 минуты, 24 секунды (7.09.2011 - 23:19) Игорь_Vasinsky написал(а):
Цитата
$to_arr = file(@$HTTP_POST_FILES['to']['tmp_name']);

biggrin.gif

@ - ты же ошибки глушишь блин.

$HTTP_POST_FILES - это устаревшее название переменной. Используйте вместо нее $_FILES., как и $_GET и $_POST... отрыл biggrin.gif

писать сам не пробывал?

print_r($_POST); и посмотри чё пишет
print_r($_FILES);

да на конец $_FILES['to']['error'] - посмотри.


как всё достало...

Спустя 6 минут, 52 секунды (7.09.2011 - 23:26) Гость_Vitalik010979 написал(а):
иЗВИНИТЕ Я НОВИЧОК НЕ МОГЛИ БЫ ПОКАЗАТЬ ЧТО И ГДЕ НАДО ИСПРАВИТЬ А ТО ЧТО ВСЕ ДОСТАЛО УЖЕ В ЭТОМ ВЫ ПРАВЫ САМ ТАКОЙ

Спустя 6 минут, 2 секунды (7.09.2011 - 23:32) Игорь_Vasinsky написал(а):
я уже всё написал.

800р. и будет как новый. срок завтра вечер. дел по горло.

Спустя 26 минут, 25 секунд (7.09.2011 - 23:58) inpost написал(а):
Vitalik010979
Неужели ты этот скрипт написал? Никто уже не учит так писать, выглядит будто ты скрипт нашел с какого-то сайта, который с 2000-ого кода ещё ни разу не обновлялся.

Как тебе выше сказали, мы лишь подсказываем на ошибки, а переделать скрипт ты должен САМ, если скрипт не твой, то ты врядли сможешь сам его переделать, а за тебя никто работать не будет, только за деньги.
Сделай то, что посоветовали выше, покажи код ошибки и задавай новые вопросы, поможем ТЕБЕ РАЗОБРАТЬСЯ, за тебя делать не будем.

Спустя 1 час, 10 минут, 16 секунд (8.09.2011 - 01:09) Гость_Vitalik010979 написал(а):
Уважаемый Админ Я не говорил что этот скрипт я настрочил сам Раньше он у меня работал безупречно Не спорю что он стар и 1941 года но он в отличии моих заказ на php скрипты работал верно не то что заказал скрипт деньги выслал а через пару дней скрипт сдох а потом ищи сыщи того создавателя скриптов Вы отремонтируйте мне пожалуйста этот скрипт а после этого я вам халтуру найду Если можете

Спустя 2 минуты, 57 секунд (8.09.2011 - 01:12) Guest написал(а):
Цитата (Гость_Vitalik010979 @ 7.09.2011 - 22:09)
Уважаемый Админ Я не говорил что этот скрипт я настрочил сам Раньше он у меня работал безупречно Не спорю что он стар и пусть 1941 кода но он в отличии моих заказ на php скрипты работал верно не то что заказал скрипт деньги выслал а через пару дней скрипт сдох а потом ищи сыщи того создавателя скриптов Вы отремонтируйте мне пожалуйста этот скрипт а после этого я вам халтуру найду Если можете

Я обязательно к вам подойду еще на счет скрипта

Спустя 7 минут, 32 секунды (8.09.2011 - 01:19) Игорь_Vasinsky написал(а):
Цитата
а через пару дней скрипт сдох

biggrin.gif biggrin.gif biggrin.gif biggrin.gif

так кормить надо было wink.gif

так не бавает dry.gif

Спустя 22 минуты, 24 секунды (8.09.2011 - 01:42) inpost написал(а):
Гость_Vitalik010979
1. Скрипт не мог сдохнуть, он просто неправильный.
2. Не хотите делать сами - платите деньги.
3. Нереально читать, знаки препинания расставили хотя бы.
4. Заходите в гугл, пишите: "создание сайтов", открывается первой строчкой "Передовик", заказываете ему, получаете ИДЕАЛЬНЫЙ скрипт, без всяких зазубринок, да и вообще, я это для примера привёл.
5. Не нужна мне халтура, если конечно она не будет на 3000$+, нет - и дела нет.
6. Не бывает такого, что приходится искать создателя скриптов, это либо с кармой на фрилансе, либо через гугл настоящие качественные фирмы. А если взяли у какого-нибудь "барыги", то тебе лучше заказать заново у кого-нибудь более качественного источника. Если нельзя найти человека, то это 100% какой-то левый подход к поиску исполнителя.

Спустя 13 минут, 42 секунды (8.09.2011 - 01:55) Vitalik010979 написал(а):
Просто Админ! У меня к вам два вопроса
1) Какие хостинги поддерживают рассылки спама
2)Ты не смог бы переделать вот такой скрипт и добавить вложение убрать код,секунды и переделать на несколько адресов
скрипты имеются
хороший скрипт но он сдох

Спустя 19 минут, 33 секунды (8.09.2011 - 02:15) Игорь_Vasinsky написал(а):
Цитата
2. Не хотите делать сами - платите деньги.
wink.gif

Спустя 2 минуты, 3 секунды (8.09.2011 - 02:17) inpost написал(а):
Vitalik010979
Называй цену, и не надо просто так давать рекламные ссылки.

Спустя 1 минута, 42 секунды (8.09.2011 - 02:19) Игорь_Vasinsky написал(а):
inpost
не привык ещё к вопросам на вопрос: хотелось бы услышать вашу сумму...

Спустя 2 часа, 29 минут, 43 секунды (8.09.2011 - 04:48) Vitalik010979 написал(а):
http://soobchestvo.h1.ru/parazeetive.php не работает вложение
http://nostalgiy.hut2.ru/index.php нужно убрать код секунды и добавить вложение
скрипты имеются

Спустя 1 минута, 33 секунды (8.09.2011 - 04:50) Vitalik010979 написал(а):
Цитата (Vitalik010979 @ 8.09.2011 - 01:48)
http://soobchestvo.h1.ru/parazeetive.php не работает вложение
http://nostalgiy.hut2.ru/index.php нужно убрать код секунды и добавить вложение
скрипты имеются

цена за все 1000 +500 за гарантию

Спустя 2 дня, 6 часов, 38 минут, 32 секунды (10.09.2011 - 11:28) Vitalik010979 написал(а):
Ребята Администраторы я заплачу за два скрипта Мне нужно срочноо их переделать
почта для связи zaharutin2011@yandex.ru ЖДУ

Спустя 6 дней, 13 часов, 36 минут, 32 секунды (17.09.2011 - 01:05) Vitalik010979 написал(а):
Цитата (Игорь_Vasinsky @ 7.09.2011 - 20:32)
я уже всё написал.

800р. и будет как новый. срок завтра вечер. дел по горло.

отремунтируйте мне я согласен оплатить

Спустя 3 минуты, 25 секунд (17.09.2011 - 01:08) Игорь_Vasinsky написал(а):
1. Освежи ка память.
2. Цена может варироваться в большую сторону (либо сроки) в связи с почти полной занятостью

Спустя 4 минуты, 50 секунд (17.09.2011 - 01:13) Vitalik010979 написал(а):
отремонтируйте мне второй скрипт там нужно убрать код секунды и добавить вложение
http://nostalgiy.hut2.ru/index.php
скрипт можно скачать здесь http://depositfiles.com/files/5ihe2wb8a так как он в нескольких файлах и я не смогу вам здесь все отрадактировать

первый мой скрипт напечатан в начале этой темы в нем неработает вложение которое приходит 0кб так как он 2000 кода проверить можно здесь http://soobchestvo.h1.ru/parazeetive.php

Спустя 1 минута, 34 секунды (17.09.2011 - 01:15) Игорь_Vasinsky написал(а):
800 руб. 3-4 дня. ок? демонстрация работы в онлайн, ещё требования есть?

webmoney, yandex деньги. в рублях.

Спустя 1 минута, 14 секунд (17.09.2011 - 01:16) Vitalik010979 написал(а):
модернизируйте мне второй тоже скрипт он мне тоже обязатялен заплачу

Спустя 2 минуты, 28 секунд (17.09.2011 - 01:18) Игорь_Vasinsky написал(а):
так. стоп. попрошу по пунктно изложить что и где нужно сделать - чтобы потом не возникало вопросов а почему.. а как это я уже заплатил.

Спустя 8 минут, 10 секунд (17.09.2011 - 01:27) Vitalik010979 написал(а):
СКРИПТ №1 Неработает вложение Вложение приходит 0кб МЕТОД ЕГО РАБОТЫ

Свернутый текст
<?php 
$message_in_min = 10000;
$mode = $HTTP_POST_VARS['mode'];

switch($mode){
case 'send':
if(isset($HTTP_POST_FILES['filename']['tmp_name'])){
$base_name = $HTTP_POST_FILES['filename']['name'];
$f = fopen($HTTP_POST_FILES['filename']['tmp_name'],"rb");
$attach = base64_encode(fread($f,filesize($HTTP_POST_FILES['filename']['tmp_name'])));
$isfile = 1;
}
else {$isfile = 0;}
# Проверки ################################################## ###############
$from = $HTTP_POST_VARS['from'];
if(empty($from)){echo("Неуказан адрес отправителя");exit;}
else if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i",$from)){echo("$from - не верный адрес отправителя"); exit;}
$fromname = @$HTTP_POST_VARS['fromname'];
if(isset($fromname)){$from = $fromname." <$from>";}
$subject = $HTTP_POST_VARS['subject'];
$subject = htmlspecialchars(stripslashes($subject));
if(!$subject){echo("Опять же, кто будет писать тему сообщения?");}
$type = $HTTP_POST_VARS['type'];
$message = $HTTP_POST_VARS['message'];
if($type == 'text'){$message = htmlspecialchars(stripslashes($message));}
if(!$message){echo("Короче, нужно что то написать. Где сообщение-то?"); exit;}
################################################## ##########################
$to_arr = file(@$HTTP_POST_FILES['to']['tmp_name']);
// print_r($to_arr);exit;
$to_arr = array_unique($to_arr);
$i = 0;
$current_message= 0;
$num_send = 0;
$num_bad = 0;
$num_error= 0;
while(isset($to_arr[$i])){
$to_arr[$i] = trim($to_arr[$i]);
if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i",$to_arr[$i])){
echo($to_arr[$i].' - голимый адрес, я на его отправлять ничего не собираюсь'."<br>\n");
$num_bad++;
}
else{
if(sendemail($from,$to_arr[$i],$subject,$message,$type)){
echo('Сообщение на '.$to_arr[$i]." отправлено<br>\n"); flush();
$num_send++;
}
else{$num_error++;}
}

$current_message++;
if($current_message == $message_in_min){
$current_message = 0;
echo('Отправлено '.$message_in_min.' соообщений. Пауза 60 сек.'."<br>\n");
flush();
sleep(30);
echo('<!---->'."\n");
flush();
sleep(30);
}
$i++;
}
echo('<hr size="1" color="#000000">Рассылка завершена!<br>'."\n");
echo('
<b>Отправлено : '
.$num_send.'</b>
<b>Ошибок связи: '
.$num_error.'</b>
<b>Плохих email: '
.$num_bad.'</b>
<hr size="1" color="#000000">
'
);
break;
default:
echo('
<div align="center">
<h1>Рассылка писем</h1>
<form method="post" enctype="multipart/form-data">
<table align="center" border="0">
<tr>
<td align="right" bgcolor="#EBEBEB"><strong>От кого (Имя):</strong></td>
<td><input type="Text" class="inp" name="fromname" value="" size="30"> * - Не обязательно. Например, Пупкин И.И.</td>
</tr>
<tr>
<td align="right" bgcolor="#EBEBEB"><strong>От кого (Email):</strong></td>
<td><input type="Text" class="inp" name="from" value="" size="30"> * - Только email адрес</td>
</tr>
<tr>
<td align="right" bgcolor="#EBEBEB"><strong>Кому:</strong></td>
<td><input type="File" name="to" class="inp" size="68"></td>
</tr>
<tr>
<td align="right" bgcolor="#EBEBEB"><strong>Тема:</strong></td>
<td><input type="Text" class="inp" name="subject" value="" size="80"></td>
</tr>
<tr>
<td valign="top" align="right" bgcolor="#EBEBEB"><strong>Сообщение:</strong></td>
<td><textarea name="message" rows="10" cols="82" class="inp"></textarea></td>
</tr>
<tr>
<td valign="top" align="right" bgcolor="#EBEBEB"><strong>Прикрепить файл:</strong></td>
<td><input type="file" name="filename" class="inp" size="68"></td>
</tr>

<tr>
<td align="right" bgcolor="#EBEBEB"><strong>Формат</strong></td>
<td>

<table width="100%">
<tr>
<td width="20"><input class="inp" type="Radio" name="type" value="text" checked></td>
<td width="40">text </td>
<td width="20"><input class="inp" type="Radio" name="type" value="html"></td>
<td width="40">html</td>
<td align="right"><input type="Hidden" name="mode" value="send"><input type="Submit" class="inp" value="Отправить"></td>
</tr>
</table>

</td>
</tr>
<tr>
<td bgcolor="#EBEBEB"></td>
<td><hr size="3" color="#F7F7F7"></td>
</tr>
</table>
</form>
</div>
'
);
break;
}

function sendemail($from,$to,$subject,$message,$type){
$bound = time().'SPB';
global $attach, $base_name, $isfile;

$sep = chr(13).chr(10); // Разделитель строк заголовка
switch($type){
case 'text':
$headers = "From: ".$from.$sep;
$headers.= "X-Priority: 3".$sep;
$headers.= "X-MSMail-Priority: Normal".$sep;
$headers.= "X-Mailer: PHP/".phpversion().$sep;
$headers.= "MIME-Version: 1.0".$sep;
$headers.= "Content-Type: multipart/mixed; boundary=\"".$bound."\"".$sep.$sep;

$body = "--$bound".$sep;
$body.= "Content-type: text/plain; charset=\"windows-1251\"".$sep;
$body.= "Content-Transfer-Encoding: 8bit".$sep.$sep;
$body.= $message.$sep;

if($isfile == 1){
$body.= "$sep$sep--$bound".$sep;
$body.= "Content-Type: application/octet-stream;";
$body.= "name=\"".basename($base_name)."\"".$sep;
$body.= "Content-Transfer-Encoding:base64".$sep;
$body.= "Content-Disposition:attachment".$sep.$sep;
$body.= $attach.$sep;
}
// $body.="$bound--".$sep.$sep;
break;
case 'html':
$headers = "From: ".$from.$sep;
$headers.= "X-Priority: 3".$sep;
$headers.= "X-MSMail-Priority: Normal".$sep;
$headers.= "X-Mailer: PHP/".phpversion().$sep;
$headers.= "MIME-Version: 1.0".$sep;
$headers.= "Content-Type: multipart/mixed; boundary=\"".$bound."\"".$sep.$sep;

$body = "--$bound".$sep;
$body.= "Content-type: text/html; charset=\"windows-1251\"".$sep;
$body.= "Content-Transfer-Encoding: 8bit".$sep.$sep;
$body.= $message.$sep;

if($isfile == 1){
$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";
}
// $body.="$bound--".$sep.$sep;
break;
default:
echo('<center><b>Неверный параметр типа письма.</b></center>');
break;
}
if(mail($to,$subject,$body,$headers)){return true;}
else{return false;}
}

?>

Спустя 1 минута, 49 секунд (17.09.2011 - 01:28) Игорь_Vasinsky написал(а):
скрипт №2???

Спустя 1 минута, 58 секунд (17.09.2011 - 01:30) Игорь_Vasinsky написал(а):
Для желающих присоеденится как бы поясню - что Тс уже предложена платная основа для решения сего вопроса.

Так что можно аукционить и не красиво будет исключить возможность заработка.

Спустя 11 часов, 21 минута, 10 секунд (17.09.2011 - 12:51) Vitalik010979 написал(а):
Цитата (Игорь_Vasinsky @ 16.09.2011 - 22:28)
скрипт №2???

СКРИПТ №2 В нем надо убрать код(безопасности), секунды и добавить вложение МЕТОД ЕГО РАБОТЫ
Но он состоит из 9-10 php файлов поэтому я немогу Вам его сюда выложить я просто могу дать ссылку где скачать ОН МНЕ ОЧЕНЬ НУЖЕН ССЫЛКА

жду ответа
Быстрый ответ:

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