ФорумПрограммированиеPHP для идиотов → Отправка почты по средствам PHP

Отправка почты по средствам PHP

  • Sem_Y

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 12 декабря 2008 г. 0:19

    Подскажите как правельно сделать.
    Есть функция которая должна осужествлять россылку писем на адреса получение из базы данных.
    В итоге если убрать из

    foreach($recipients as $recipient)
    {
    первых две строчки ***
    $headers['To'] = $recipient;
    $mail =& Mail::factory('sendmail', $params);
    ***
    $mail->send($recipient, $headers, $body);
    }

    только тогда отправляет письма и то без хедера ( То )
    А без этого хедера письма дальше нашего сервака не идут - принимающая сторона ругаетса ( 554 Suspicious message ).

    Помогите начинающему !!!
    РАЗАНИЕ ДЛАГОДАРЕН !

    ***************
    function send($recipients,$subject,$text_body,$attachments=array())
    {
    is_array($recipients) || $recipients = array($recipients);
    $mime_message = new Mail_mime();
    $mime_message->setTXTBody($text_body);
    $mime_message->setSubject($subject);
    $mime_message->setFrom(CONFIG_ADMIN_EMAIL_SENDER);

    foreach($attachments as $attachment)
    {
    $mime_message->addAttachment($attachment);
    }
    $params = array('text_encoding' => '8bit',
    'text_charset' => 'koi8-u',
    'head_charset' => 'koi8-u');

    $body = $mime_message->get($params);

    $params['sendmail_path'] = 'e:/tmp';
    $headers = 'MIME-Version: 1.0';
    $headers = $mime_message->headers();

    $smtpinfo["host"] = "127.0.0.1";
    $smtpinfo["port"] = "25";
    $smtpinfo["auth"] = false;
    $smtpinfo["username"] = "test";
    $smtpinfo["password"] = "1";
    $mail =& Mail::factory("smtp", $smtpinfo);

    foreach($recipients as $recipient)
    {
    $headers['To'] = $recipient;
    $mail =& Mail::factory('sendmail', $params);
    $mail->send($recipient, $headers, $body);
    }
    }
    **********************


    // Timur: код заключаем в теги
  • Trej Gun

    Сообщения: 5299 Репутация: N Группа: в ухо

    Spritz 12 декабря 2008 г. 1:14, спустя 55 минут 4 секунды

    $headers = 'MIME-Version: 1.0';
    $headers = $mime_message->headers();
    …..
    $headers['To'] = $recipient;


    странный скрипт, тот кто его делал не думал ваще
  • phpdude

    Сообщения: 26618 Репутация: N Группа: в ухо

    Spritz 12 декабря 2008 г. 1:20, спустя 5 минут 30 секунд


    $headers = 'MIME-Version: 1.0';
    $headers = $mime_message->headers();
    …..
    $headers['To'] = $recipient;


    странный скрипт, тот кто его делал не думал ваще
    потенциально безмозглый кодер творил это)
    Сапожник без сапог
  • adw0rd

    Сообщения: 22902 Репутация: N Группа: в ухо

    Spritz 12 декабря 2008 г. 1:31, спустя 11 минут 8 секунд

    xD
    adw/0
  • }/{EHR

    Сообщения: ? Репутация: N Группа: Адекваты

    Spritz 13 декабря 2008 г. 1:28, спустя 23 часа 56 минут 53 секунды

    Вот из за вас на одного человека на пыхе стало меньше… (
  • phpdude

    Сообщения: 26618 Репутация: N Группа: в ухо

    Spritz 13 декабря 2008 г. 1:59, спустя 31 минуту 26 секунд


    Вот из за вас на одного человека на пыхе стало меньше… (
    мы ответили по делу ;) тут не помогать надо а пределать с 0 полностью да и все. или взять готовый phpmailer например
    Сапожник без сапог
  • Sem_Y

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 17 декабря 2008 г. 4:21, спустя 4 дня 2 часа 21 минуту

    Извените за бестолковость не я писал этот код.
    Переделал с нуля —

    вот что вышло =

    function send($recipients,$subject,$text_body,$attachments=array())
    {
     $crlf = "\n";
     $hdrs = array(
                 'From'    => (CONFIG_ADMIN_EMAIL_SENDER),
                 'Subject' => ($subject)
                 );
     is_array($recipients) || $recipients = array($recipients);

     $mime = new Mail_mime($crlf);
     $mime->setTXTBody($text_body);

      foreach($attachments as $attachment)
       {
        $mime->addAttachment($attachment);
    //      , 'multipart/mixed'
       }
       $params = array('text_encoding' => '8bit',
                       'text_charset'  => 'koi8-u',
               'head_charset'  => 'koi8-u');

      $body = $mime->get($params);
      $hdrs = $mime->headers($hdrs);

    $smtpinfo["host"] = "127.0.0.1";
       $smtpinfo["port"] = "25";
       $smtpinfo["auth"] = false;
       $smtpinfo["username"] = "test";
       $smtpinfo["password"] = "1";
       $mail =& Mail::factory("smtp", $smtpinfo);

       $mail =& Mail::factory('mail');

        foreach($recipients as $recipient)
        {
         $mail->send($recipient, $hdrs, $body);
        }

     if (PEAR::isError($mail))
      {
      // error
      echo 'Помилка відправки !!!';
      echo $attachment;
      echo $recipient;
      echo $hdrs;
      echo $body;
      die;
      }
      else
      {
      // success
      }
     }


    Говорил с админами - говорят роспознаётса отправленое ка СПАМ !   ПОЧЕМУ ???
    Может не хватает  чого тут ?
  • adw0rd

    Сообщения: 22902 Репутация: N Группа: в ухо

    Spritz 17 декабря 2008 г. 4:24, спустя 3 минуты 13 секунд

    Неужели сложно обрамить в бб-теги?

    function send($recipients,$subject,$text_body,$attachments=array()) {
     $crlf = "\n";
     $hdrs = array(
       'From' => (CONFIG_ADMIN_EMAIL_SENDER),
       'Subject' => ($subject)
     );
     
     is_array($recipients) || $recipients = array($recipients);

     $mime = new Mail_mime($crlf);
     $mime->setTXTBody($text_body);

     foreach($attachments as $attachment) {
       $mime->addAttachment($attachment);
       // , 'multipart/mixed'
     }

     $params = array(
       'text_encoding' => '8bit',
       'text_charset' => 'koi8-u',
       'head_charset' => 'koi8-u'
     );

     $body = $mime->get($params);
     $hdrs = $mime->headers($hdrs);

     $smtpinfo["host"] = "127.0.0.1";
     $smtpinfo["port"] = "25";
     $smtpinfo["auth"] = false;
     $smtpinfo["username"] = "test";
     $smtpinfo["password"] = "1";
     $mail =& Mail::factory("smtp", $smtpinfo);
     
     $mail =& Mail::factory('mail');

     foreach($recipients as $recipient) {
       $mail->send($recipient, $hdrs, $body);
     }

     if (PEAR::isError($mail)) {
       // error
       echo 'Помилка відправки !!!';
       echo $attachment;
       echo $recipient;
       echo $hdrs;
       echo $body;
       die;
     }
     else
     {
      // success
     }
    }

    adw/0
  • adw0rd

    Сообщения: 22902 Репутация: N Группа: в ухо

    Spritz 17 декабря 2008 г. 4:27, спустя 2 минуты 51 секунду

    Sem_Y, можно спросить, а чем не устраивает mail()?
    adw/0
  • Sem_Y

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 17 декабря 2008 г. 4:28, спустя 1 минуту 5 секунд

    Нет несложно ,,,  просто новенький я здесь ..
  • Sem_Y

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 17 декабря 2008 г. 4:31, спустя 2 минуты 56 секунд

    Мне всёравно mail() или mime, главное чтоб работало.
    Смысл втом чтоб отправлялась рассилка с прикреплёмим файлом.
  • sap

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 17 декабря 2008 г. 4:32, спустя 1 минуту 17 секунд

    А типа mail() нельзя с аттачем. Я где-то на форуме выкладывал функцию, поищи.
  • adw0rd

    Сообщения: 22902 Репутация: N Группа: в ухо

    Spritz 17 декабря 2008 г. 4:36, спустя 3 минуты 36 секунд

    Sem_Y, попроси у админов письмо, которое опознано как спам, вместе с заголовками.
    Второе, у каких админов ты спрашивал.
    Третье, попробуй отправить с другого хоста.
    adw/0
  • md5

    Сообщения: 11951 Репутация: N Группа: в ухо

    Spritz 17 декабря 2008 г. 4:46, спустя 9 минут 51 секунду

    можно заюзать phpmailer и не париться с аттачами
    все умрут, а я изумруд
  • Sem_Y

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 17 декабря 2008 г. 4:47, спустя 1 минуту 15 секунд

    sap
    Ок сейчас поищу…

    adw0rd
    Вот заголовки писем отправленых скриптом–

    Received: from gete by mediamarket.lutsk.ua (MDaemon PRO v9.6.4)
           with ESMTP id md50000083502.msg
           for <[email protected]>; Tue, 16 Dec 2008 11:29:55 +0200
    X-Spam-Processed: media.lutsk.ua, Tue, 16 Dec 2008 11:29:55 +0200
           (not processed: message from valid local sender)
    X-MDHeloLookup-Result: pass smtp.helo=gete (ip=127.0.0.1) (media.lutsk.ua)
    X-MDMailLookup-Result: pass [email protected] (ip=127.0.0.1) (media.lutsk.ua)
    X-Return-Path: [email protected]
    X-Envelope-From: [email protected]
    X-MDaemon-Deliver-To: [email protected]
    Date: Tue, 16 Dec 2008 11:29:54 +0200
    Subject: price
    To: [email protected]
    MIME-Version: 1.0
    From: [email protected]
    Content-Type: multipart/mixed;
           boundary=&quot;=_1217d95e5d56d01482cca0e15b014b86&quot;
    Message-ID: <[email protected]>


    Интересовалса у админа получающего почтового сервера.
    С другого хоста отправлять не отправлял - но на етот же аодер письма отправленые скажем из (Зе Бата) итут нормально…

Пожалуйста, авторизуйтесь, чтобы написать комментарий!