Скрипт для отправки сообщения на электронную почту

mikas3025

Постоялец
Регистрация
23 Дек 2007
Сообщения
107
Реакции
7
Приветствую.
Я планирую своим поставщикам переиодически раз в месяц отправлять запос о том, менялись ли цены, планируется ли повышение цен и типа такого, как напоминатель.
Для этого, если я правильно понимаю, нужен скрипт для отправки на определенный e-mail электронного письма какого либо содержания. Скрипт планирую поставить в Cron и забыть.
Подскажите, есть ли готовые решения?
 
У меня сохранился такой вот не большой скриптик. Вкидываешь на сервер и сам делаешь рассылку.
Создай index.php и скопируй туда код ниже. Давно не пользовался но должен работать. Адреса вставляешь из фала .txt

PHP:
<?php
 
ob_start();
 
?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml">
 
<head>
 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
<meta name="Description" content="высылай elaim из файла txt "/>
 
<meta name="Keywords" content="массовая рассылка с файла txt"/>
 
<meta name="Author" content=" имя, название сайта или компании твойадрес@gmail.com"/>
 
<title> Скрипт массовой рассылки</title>
 
<link rel="stylesheet" href="style.css" type="text/css">
 
</head>
 
<?php
 
ob_start();
 
 
 
$ip = $_SERVER['REMOTE_ADDR'];
 
 
 
 
 
 
 
 
 
?>
 
<body bgcolor=black>
 
<div style="width:1000px;margin:auto">
 
<center> <font color=white>
 
<h2> Скрипт массовой рассылки</h2><br><br>
 
<div style="background-color:black;color:white;width:450px;margin:autp;border:1px solid white;overflow:auto;padding:10px">
 
<FORM ENCTYPE="multipart/form-data" action="?" method="POST" >Файл с адресами e-mail<br>
 
<FORM ENCTYPE="multipart/form-data" method=post>
 
<INPUT TYPE="FILE" NAME="userfile" SIZE="50">
 
<br><br>
 
<br>Текст сообщения:<br>
 
<textarea name="opis" cols="50" rows="10"></textarea><br><br>Отправитель:<br><input type="text" name="odkovo" size="50"><br><br>
 
temat:<br> <input type="text" name="temat" size="50"><br>
 
<br>
 
<INPUT TYPE="SUBMIT" VALUE="Выслать" name="wys">
 
 
 
</form>
 
<?php
 
 
 
if(isset($_POST['wys'])){
 
 
 
 
 
echo "<font color=green> Высланные e-mail </font></br>";
 
$plik =$_FILES['userfile']['tmp_name'];
 
$fd = fopen( $plik, 'r' );
 
 
 
 
 
 
 
$file=$plik;
 
 
 
 
 
function get_addresses($file) {
 
$breaking = array(' ', ',', '>', '<', "\t", "\r", "\n");
 
$addr = array();
 
$data = explode('@', file_get_contents($file));
 
$n = count($data);
 
for ($i = 1; $i < $n; $i++) {
 
$addr[$i-1] = '@';
 
$begin = 0;
 
$end = strlen($data[$i-1]) - 1;
 
while ((!in_array($data[$i-1]{$end}, $breaking)) and ($begin <= $end)) {
 
$addr[$i-1] = $data[$i-1]{$end} . $addr[$i-1];
 
$end--;
 
}
 
$begin = 0;
 
$end = strlen($data[$i]) - 1;
 
while ((!in_array($data[$i]{$begin}, $breaking)) and ($begin <= $end)) {
 
$addr[$i-1] .= $data[$i]{$begin} ;
 
$begin++;
 
}
 
}
 
if (count($addr) == 0) {
 
return FALSE;
 
} else {
 
return $addr;
 
}
 
}
 
 
 
$odkovo=$_POST['odkovo'];
 
 
 
 
 
$headers=@$headers;
 
$headers .= 'MIME-Version: 1.0'. "\r\n"; // *5
 
$headers .= "Content-Type: text/html; charset=utf-8 \r\n";
 
$headers .= "From: $odkovo \r\n";
 
 
 
$tablica = get_addresses($file);
 
for ($i=0; $i<=count($tablica); $i++)
 
{
 
 
 
 
 
$temat=$_POST['temat'];
 
$message=$_POST['opis'];
 
$message=nl2br($message);
 
 
 
$mail_sent = @mail($tablica[$i], "$temat", $message, $headers);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
}
 
 
 
 
 
 
 
}
 
 
 
?>
 
</div>
 
</div></div><br>
 
<div style="clear:both;width:300px;color:white;margin:auto;"> Created by Abal <a href="mailto:твойадрес@gmail.com">написать автору</a> </font>
 
<?php
 
ob_end_flush();
 
?>

ТВОИ ДАННЫЕ В СКРИПТЕ СЛЕДУЕТ ПОДПРАВИТЬ
 
У меня сохранился такой вот не большой скриптик. Вкидываешь на сервер и сам делаешь рассылку.
Создай index.php и скопируй туда код ниже. Давно не пользовался но должен работать. Адреса вставляешь из фала .txt

Спасибо, интересный скрипт, но это не совсем то, что мне нужно. В этом скрипте надо самому выбрать файл с мейлами, ввести текст НАЖАТЬ кнопку отправить.

Я имел ввиду, чтобы скрипт был уже заряжен на отправку письма, как только CRON его запускает, он сразу же шлет письмо на адрес, который в этом скрипте указан, с темой и текстом, опять же, указанном в скрипте. То есть раз в месяц CRON запускает этот скрипт и получателю mail@mail.mars приходит письмо с темой - "прошу выслать новый прайс" и текстом - "Володя, привет, пришли плиз, новый прайс, если что нить в ценах изменилось."
 
Спасибо, интересный скрипт, но это не совсем то, что мне нужно. В этом скрипте надо самому выбрать файл с мейлами, ввести текст НАЖАТЬ кнопку отправить.

Я имел ввиду, чтобы скрипт был уже заряжен на отправку письма, как только CRON его запускает, он сразу же шлет письмо на адрес, который в этом скрипте указан, с темой и текстом, опять же, указанном в скрипте. То есть раз в месяц CRON запускает этот скрипт и получателю mail@mail.mars приходит письмо с темой - "прошу выслать новый прайс" и текстом - "Володя, привет, пришли плиз, новый прайс, если что нить в ценах изменилось."
А что разве проблема в сам скрипт вписать файл с адресами и текст письма с темой? дело на пол минуты...
 
Я понял это так:
От всего, что указано во втором посте нужно оставить вот это:
PHP:
<?php
 
ob_start();
 
$ip = $_SERVER['REMOTE_ADDR'];
 
?>

PHP:
<?php
 
if(isset($_POST['wys'])){
 
echo "<font color=green> Высланные e-mail </font></br>";
 
$plik =$_FILES['userfile']['tmp_name'];
 
$fd = fopen( $plik, 'r' );
 
$file=$plik;
 
function get_addresses($file) {
 
$breaking = array(' ', ',', '>', '<', "\t", "\r", "\n");
 
$addr = array();
 
$data = explode('@', file_get_contents($file));
 
$n = count($data);
 
for ($i = 1; $i < $n; $i++) {
 
$addr[$i-1] = '@';
 
$begin = 0;
 
$end = strlen($data[$i-1]) - 1;
 
while ((!in_array($data[$i-1]{$end}, $breaking)) and ($begin <= $end)) {
 
$addr[$i-1] = $data[$i-1]{$end} . $addr[$i-1];
 
$end--;
 
}
 
$begin = 0;
 
$end = strlen($data[$i]) - 1;
 
while ((!in_array($data[$i]{$begin}, $breaking)) and ($begin <= $end)) {
 
$addr[$i-1] .= $data[$i]{$begin} ;
 
$begin++;
 
}
 
}
 
if (count($addr) == 0) {
 
return FALSE;
 
} else {
 
return $addr;
 
}
 
}
 
$odkovo=$_POST['odkovo'];
 
$headers=@$headers;
 
$headers .= 'MIME-Version: 1.0'. "\r\n"; // *5
 
$headers .= "Content-Type: text/html; charset=utf-8 \r\n";
 
$headers .= "From: $odkovo \r\n";
 
$tablica = get_addresses($file);
 
for ($i=0; $i<=count($tablica); $i++)
 
{
 
$temat=$_POST['temat'];
 
$message=$_POST['opis'];
 
$message=nl2br($message);
 
$mail_sent = @mail($tablica[$i], "$temat", $message, $headers);
 
}
 
}
 
?>

PHP:
<?php
 
ob_end_flush();
 
?>

А потом
PHP:
$odkovo=$_POST['odkovo']; поменять на $odkovo=$_POST[от ООО "Привет"];
 
$temat=$_POST['temat']; поменять на $temat=$_POST[Запрос обновленного прайса];
 
$message=$_POST['opis']; поменять на $message=$_POST[мой текст письма типа привет Лёха];
Это правильно?
Я тут только одного не понял - где указать адрес (или путь к файлу с адресом, хотя удобнее, чтобы адрес электронки был прямо в скрипте, так как планирую использовать не для спама) на который должно уйти письмо.
и вот это в самом начале:
PHP:
<?php
 
ob_start();
 
$ip = $_SERVER['REMOTE_ADDR'];
 
?>
ОНО нужно или нет?
 
У меня такой скрипт
Просто там еще проблема в кодировке темы письма (у меня решено)

PHP:
<?php
 
 
 
 
 
$to_mail = $_POST; // ваш email
 
$date = date("Y-m-d");
 
$ip = $_SERVER['REMOTE_ADDR'];
 
$name = $_POST[name];
 
$phones = $_POST[phones];
 
$text = $_POST[text];
 
$subj='Заказ звонка';
 
 
 
if($_POST['phone'] == "yes") {
 
 
 
if ($_POST[name] ==""){
 
$err01 = "Вы не <b>Представились</b>!";
 
$send = "no";
 
}
 
 
 
if ($_POST[phones] =="") {
 
$err02 ="<BR>Вы не ввели <b>Телефон</b>";
 
$send = "no";
 
}
 
 
 
 
 
if ($send != "no"){
 
 
 
$sendphone = "<B>Как только мы увидим вашу заявку так сразу же позвоним Вам</B>
 
<BR>
 
<a href='javascript: self.close ()'>Закрыть окно</a>
 
</div>";
 
 
 
if ($phones=='Предложение') { $sendphone = "<B>Предложение было успешно отправлено</B>
 
<BR><a href='javascript: self.close ()'>Закрыть окно</a></div>";$subj='Предложения по сайту';}
 
 
 
$message="
 
 
 
Имя - $name
 
Телефон - $phones
 
Коментарий - $text
 
 
 
IP - $ip
 
Дата - $date
 
";
 
 
 
mail("$to_mail",$subj,"$message","From: zvonok@adult-toys.su\n"."Content-type: text/plain; charset=utf-8");
 
}
 
else if ($send == "no") {
 
$sendphone = "<div style='padding: 14 0 0 15px;'>";
 
$sendphone .= "$err01";
 
$sendphone .= "$err02";
 
$sendphone .= "<BR><BR>Вернитесь <a href='zvonok.php'>назад</a> и повторите попытку";
 
$sendphone .= "</div>";
 
}
 
}
 
?>
 
 
 
<html>
 
<head>
 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 
<title>Заказ обратного звонка</title>
 
</head>
 
<body style="color: #e0d1ce;background-color: #9e8684;font-family: Arial, Tahoma, Verdana, sans-serif;">
 
<script type="text/javascript" src = "http://www.google-analytics.com/ga.js"></script>
 
<script type="text/javascript">
 
var pageTracker = _gat._getTracker("UA-17477071-1");
 
pageTracker._initData();
 
pageTracker._trackPageview();
 
</script>
 
<center>
 
<div style="padding: 20px;">
 
 
 
<font style="font-size: 20px;"><? if ($phones=="Предложение") echo ('Отправка предложения:'); else echo ('Заказ обратного звонка:');?></font><Br><Br>
 
 
 
<? if($sendphone) { echo $sendphone; } else { ?>
 
<table border=0>
 
<form method=post onSubmit="if(!document.getElementById('phone').value){ alert(document.getElementById('phone').value + 'Введите номер!'); return false;}pageTracker._trackPageview('/goals/call-back/complete');">
 
<input type="hidden" name="enter" value="1">
 
<tr>
 
<td align=right><font class="olive">Имя:</font></td>
 
<td><input type="text" class="login" name="name" size=20></td>
 
</tr>
 
<tr>
 
<td align=right><font class="olive">Телефон:</font></td>
 
<td><input name="phones" class="login" type="text" size=20></td>
 
</tr>
 
<tr><td colspan=2 align=center>Комментарий: <BR><textarea name="text" cols="30" rows="5"></textarea></td></tr>
 
<tr>
 
<td colspan=2 align=center>
 
<input type="submit" value="отправить">
 
<input type="hidden" name="email" value="<? echo $to_mail ?>">
 
<input type="hidden" name="phone" value="yes">
 
<input type="hidden" name="ip" value="<? echo $_SERVER['REMOTE_ADDR'];?>">
 
<input type="hidden" name="data" value="<? echo date("H:i d.m.Y");?>">
 
</td>
 
</tr>
 
</form>
 
</table>
 
<? } ?>
 
</div>
 
</html>
 
Мне не понятно, на форуме существуют BB кодя для корректного представления php коды для красоты или для того, чтоб топики засирались непонятными простынями символов, конфликтующих с действующими ВВ кодами? Или ими пользоваться лень и модератор типа поправит?
 
Кароче ТС, не парься на тебе рабочий скрипт и юзай на здоровье =)

PHP:
<?
 
$subject = "Рассылка моего сайта"; // тема рассылки
$fromemail = "мое@мыло"; // ваш адрес (для ответов)
$file = "maillist.txt"; // список адресов подписчиков
 
$body = "\n\n\n Тело письма\n";
 
 
error_reporting(1);
$subject = stripslashes($subject);
$body = stripslashes($body);
$maillist = file($file);
 
print "В базе". sizeof($maillist) ." адресов<br>";
for ($i = 0; $i < sizeof ($maillist); $i++)
{
#echo($maillist[$i]."<br>");
mail($maillist[$i], $subject,
$body ."Тут подпись можно=) или привет симпотичной секретарше",
"From: $fromemail");
}
echo "Готово!";
 
?>

а то тут скоро исходники спамеров будут выкладывать с соксами и прочими приблудами
 
Назад
Сверху