ФорумРазработкаУстановка и администрирование ПОРазное ПО → Отправка почты sendmail-ом

Отправка почты sendmail-ом

  • adw0rd

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

    Spritz Май 19, 2009, 2:16 д.п., спустя 23 минуты 33 секунды

    Каждый такой однокpатный pазгpебальщик поднимает очеpедь, соpтиpует
    ее, опpеделяет, какие задания запускать (если включено MinQueueAge).
    Затем, если ForkEachJob pазpешено (кpайне HЕ pекомендую - этим можно
    запpосто уложить машину - огpаничитель имени QueueLA может пpосто не
    успеть сpаботать на нынешних быстpых хостах), то на каждое письмо
    фоpкается свой доставщик в паpаллель. Иначе - если ForkEachJob=False -
    такой отфоpкнувшийся от основного демона доставщик будет сам
    последовательно пеpебиpать задания.

    Поэтому: напpимеp, запускай так:

    sendmail -q4m -OMaxDaemonChildren=10 -OForkEachJob=False

    это даст, что новый pазгpебальщик будет пускаться каждые 4 минуты,
    всего их будет не более 10, и одновpеменных доставок будет
    соответственно не более 10.



    По мотивам ссылки от дуда…

    -OForkEachJob=False
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • phpdude

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

    Spritz Май 19, 2009, 3:08 д.п., спустя 51 минуту 56 секунд



    читать бля не умеешь?

    Очень не хотелось отвечать на этот наброс, но увы… устал уже…
    Не поверишь, бля, не все оказывается владеют английским…. А в приведенной тобой опеннетной ссылке только кусок решения, к которому я не знаю с какой стороны подступиться… Я в курсе, что мое непонимание это моя проблема и что тут никто никому ничего не должен и отвечать или не отвечать это личное дело каждого… но если твою нежную душу так ранит мое невежество, то может стоило просто пройти мимо а не бросаться на людей.. или ты баретс со вселенским слом?
    Продолжать почему-то не хочется…


    я боретс, ты прав. только не со злом, а невежеством
    Сапожник без сапог
  • Cheese

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

    Spritz Май 19, 2009, 7:41 д.п., спустя 4 часа 33 минуты 32 секунды


    я боретс, ты прав. только не со злом, а невежеством

    Если это так, то я бы рекомендовал Вам(извините, что на Вы и без мата) бросить это занятие как можно скорее…
    Во-первых, потому что невежество непобедимо, а во-вторых, Вы крайне не эффективны в этом амплуа.
    В защите добра самое главное не защита а добро…(с)
    Представляете, уважаемый, в мире существует множество более эффективных способов борьбы с невежеством нежели любимое Вами жонглирование словами из трех букв… Взгляните хотя бы на посты adw0rd в этой теме… Так что не тратьте силы напрасно и займитесь тем, что у Вас получается лучше… программированием, например…

    На этом я предлагаю свернуть философский диспут и вернуться к обсуждению того что соответствует тематике форума…

    ЗЫ за ссылку спасибо, а adw0rd спасибо за разъяснение… сейчас попробую
  • phpdude

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

    Spritz Май 19, 2009, 7:49 д.п., спустя 7 минут 58 секунд

    нахуй нахуй нахуй
    Сапожник без сапог
  • Cheese

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

    Spritz Май 19, 2009, 8:39 д.п., спустя 49 минут 55 секунд

    Итак, вернувшись к проблеме:
    После доработки функа отправки письма выглядит так:

    function mailer( $to, $subject, $msg , $headers = '' )
    {
    $fp = popen( "/usr/sbin/sendmail -t -i -OMaxDaemonChildren=10 -OForkEachJob=False", "wb" );
    if (!$fp)
    {
    return false;
    }

    if( !empty( $headers ) )
    {
    fwrite( $fp, $headers );
    }
    fwrite( $fp, "To: " . $to . "\r\n" );
    fwrite( $fp, "Subject: " . $subject . "\r\n" );
    fwrite( $fp, "\r\n" );
    fwrite( $fp, $msg );
    pclose( $fp );
    return true;
    }

    В этом виде она работает точно также как и до модификации, т.е. никак. Точно так же не дает эффекта установка параметров "MaxDaemonChildren=10 ForkEachJob=False" в sendmail.cf У меня есть подозрение что эти ключи работают только в для режима доставки "очередь" а в режиме "немедленная доставка"(чертов параметр -i) эти ключи не работают.

    Итак, теперь осталось несколько вопросов:
    1. Правильно ли я понимаю происходящее?
    2. Если дело обстоит именно так, то как я понимаю в скрипте нужно вызвать сендмейл с отправкой писем в режиме "постановка в очередь", а снаружи нужно однократно вызвать
    sendmail -qХХm -OMaxDaemonChildren=ХХ -OForkEachJob=False
    . Если все верно, то вопрос лишь в том с какими параметрами вызывать sendmail из скрипта вместо -i.
    3. Если я в очередной раз неверно понял происходящее, то куда копать?

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