X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Нужен скрипт рассылки на N адресов с вложением
Vitaalik
Vitaalik
Topic Starter сообщение 30.1.2011, 1:39; Ответить: Vitaalik
Сообщение #1


Админ мне нужен php скрипт для рассылки почты на N адресов с вложением Можешь такой сделать? <ЗАКАЗ>
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Vitaalik
Vitaalik
Topic Starter сообщение 30.1.2011, 1:51; Ответить: Vitaalik
Сообщение #2


Админ Вы не могли бы показать как должен выглядеть этот скрипт с вложением файла а то он без вложения
[php]<?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 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;}
}
?>[/php]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Vitaalik
Vitaalik
Topic Starter сообщение 4.2.2011, 2:14; Ответить: Vitaalik
Сообщение #3


Когда Админ ответит на мой вопрос
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 4.2.2011, 15:48; Ответить: ZiTosS
Сообщение #4


ViTaLiK, если бы писали свои вопросы в отдельной теме, то и отвечали бы оперативнее. Ваш скрипт, который вы привели, состоит как минимум из 2-х, и написаннных корявой рукой. В отправке есть прикрепление файла, в форме нет. Адреса получателей нужно отправлять файлом на сервер.

Можете конечно попробовать вставить в форму поле для отправки файла, но за работоспособность не отвечаю. Поле вставляется так:
Заменяем
<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><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>


ЗАКАЗ - могу сделать платно, бесплатно ничего не делаю, если нет интереса.


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Vitaalik
Vitaalik
Topic Starter сообщение 5.2.2011, 16:42; Ответить: Vitaalik
Сообщение #5


Мой заказ остается в силе Чем скорее Вы это прочтете тем быстрее Вы сделаете
Договорность(ЦЕНУ И СРОК) пишите сюда Моя почта

Большое Спасибо
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 5.2.2011, 21:03; Ответить: ZiTosS
Сообщение #6


ViTaLiK, отписал вам, рабочий вариант был приведен выше, по крайней мере проверял на текстовой версии сообщения с вложением файла txt формата.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Нужен кодер, чтобы пофиксить ошибку Wordpress после переноса сайта
0 Alex-777 824 7.4.2024, 18:05
автор: Alex-777
Открытая тема (нет новых ответов) Нужен исполнитель на постоянную основу для набора небольших текстов
20 Думающий 9276 2.4.2024, 18:05
автор: Думающий
Открытая тема (нет новых ответов) Нужен сайт с автонаполнением по XML
1 REGNET 1221 7.3.2024, 15:08
автор: REGNET
Открытая тема (нет новых ответов) Нужен райтер на постоянку
13 Kiloan_Frost 3416 6.3.2024, 22:24
автор: vitaliraduga
Открытая тема (нет новых ответов) Нужен постинг в твиттер
3 uahomka 1733 20.2.2024, 1:00
автор: robot_yaga2


 



RSS Текстовая версия Сейчас: 18.4.2024, 16:59
Дизайн