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

Тема в разделе "Как сделать...", создана пользователем mikas3025, 2 июл 2012.

  1. mikas3025

    mikas3025 Постоялец

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

    abal Писатель

    Регистр.:
    21 апр 2012
    Сообщения:
    4
    Симпатии:
    0
    У меня сохранился такой вот не большой скриптик. Вкидываешь на сервер и сам делаешь рассылку.
    Создай 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
    ();
     
    ?>
    ТВОИ ДАННЫЕ В СКРИПТЕ СЛЕДУЕТ ПОДПРАВИТЬ
     
  3. mikas3025

    mikas3025 Постоялец

    Регистр.:
    23 дек 2007
    Сообщения:
    107
    Симпатии:
    7
    Спасибо, интересный скрипт, но это не совсем то, что мне нужно. В этом скрипте надо самому выбрать файл с мейлами, ввести текст НАЖАТЬ кнопку отправить.

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

    Цукер Сам себе призедент

    Moderator
    Регистр.:
    5 мар 2008
    Сообщения:
    414
    Симпатии:
    375
    А что разве проблема в сам скрипт вписать файл с адресами и текст письма с темой? дело на пол минуты...
     
  5. mikas3025

    mikas3025 Постоялец

    Регистр.:
    23 дек 2007
    Сообщения:
    107
    Симпатии:
    7
    Я подумал об этом, но не понял, как кнопку нажать.
     
  6. Цукер

    Цукер Сам себе призедент

    Moderator
    Регистр.:
    5 мар 2008
    Сообщения:
    414
    Симпатии:
    375
    Не нажимай кнопку...... просто убери форму html оставь только php скрипт.....
     
  7. mikas3025

    mikas3025 Постоялец

    Регистр.:
    23 дек 2007
    Сообщения:
    107
    Симпатии:
    7
    Я понял это так:
    От всего, что указано во втором посте нужно оставить вот это:
    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'];
     
    ?>
    ОНО нужно или нет?
     
  8. stonefield

    stonefield Создатель

    Регистр.:
    3 сен 2007
    Сообщения:
    10
    Симпатии:
    1
    У меня такой скрипт
    Просто там еще проблема в кодировке темы письма (у меня решено)

    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>
     
  9. lift

    lift Читатель

    Заблокирован
    Регистр.:
    1 июл 2007
    Сообщения:
    2.226
    Симпатии:
    1.377
    Мне не понятно, на форуме существуют BB кодя для корректного представления php коды для красоты или для того, чтоб топики засирались непонятными простынями символов, конфликтующих с действующими ВВ кодами? Или ими пользоваться лень и модератор типа поправит?
     
  10. Цукер

    Цукер Сам себе призедент

    Moderator
    Регистр.:
    5 мар 2008
    Сообщения:
    414
    Симпатии:
    375
    Кароче ТС, не парься на тебе рабочий скрипт и юзай на здоровье =)

    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 
    "Готово!";
     
    ?>
    а то тут скоро исходники спамеров будут выкладывать с соксами и прочими приблудами
     
    mikas3025 нравится это.