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

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

  • Cheese

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

    Spritz Май 14, 2009, 6:58 п.п.

    Для отправки почты из серверного скрипта используется такая конструкция:

    $fp = popen( "/usr/sbin/sendmail -t -i", "wb" );
    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;


    Как я понимаю примерно тоже самое делает функция mail
    При этом сендмайл сразу же пытается отправить письмо(параметр -i). Это при большом количестве писем порождает проблему - "Cannot fork"…

    Можно ли складывать письма в очередь на отправку и эту очередь постепенно разгребать и чтобы при этом форкнутые сендмэйлы не пожирали всю доступную память а плодились последовательно в том количестве которое позволяют доступные ресурсы?
  • phpdude

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

    Spritz Май 14, 2009, 7:11 п.п., спустя 13 минут 48 секунд

    почему бы не использовать функцию мейл?
    Сапожник без сапог
  • adw0rd

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

    Spritz Май 14, 2009, 7:26 п.п., спустя 14 минут 42 секунды

    Cheese, ф-ия mail так и отправляет
    /usr/sbin/sendmail -t -i

    именно с такими ключами…


    зы. ужасный if() у тебя…
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • Cheese

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

    Spritz Май 14, 2009, 9:06 п.п., спустя 1 час 40 минут 8 секунд

    Я знаю что майл так и отправляет(вернее догадываюсь).
    Это при большом количестве писем порождает проблему - "Cannot fork"…
    причем при использовании майл проблема возникает при отправке даже 50 писем одновременно
    а долбясь в сендмейл напрямую я получаю возможность отправлять пачки по 100-200 писем
    но в полной мере это проблему не решает так как пытаясь отправить письмо немедленно сендмейл
    висит в памяти вместе с еще десятком-двумя сендмейлов и ждет пока удаленный хост ему что-нибудь ответит
    и в определенный момент сендмейлов набирается много и скрипт падает…
    Выходы я вижу либо в том чтобы наращивать серверную память но это экстенсивный путь, либо как я уже писал:
    Можно ли складывать письма в очередь на отправку и эту очередь постепенно разгребать и чтобы при этом форкнутые сендмэйлы не пожирали всю доступную память а плодились последовательно в том количестве которое позволяют доступные ресурсы?

    ЗЫ чем ужасен этот иф?
  • phpdude

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

    Spritz Май 14, 2009, 9:29 п.п., спустя 22 минуты 26 секунд

    ты спамер?

    если нет, то юзай "cc" и "bcc" заголовоки или как там
    Сапожник без сапог
  • phpdude

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

    Spritz Май 14, 2009, 9:29 п.п., спустя 16 секунд

    если да, то купи еще сервер, у спамеров с баблом вроде напрягой нету
    Сапожник без сапог
  • Cheese

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

    Spritz Май 14, 2009, 9:44 п.п., спустя 15 минут 30 секунд


    ты спамер?

    если нет, то юзай "cc" и "bcc" заголовоки или как там

    Блин, люди, какие вы все монохромные… Примерно такая же реакция была когда искал сервер под сервис… все(почти… адекватные все же есть) бегут как от чумы с криками "фу спамер"…. У спамеров действительно подобных проблемов нет наверное и масштабы не те…
    А у мну 6-8К подписчиков и десяток рассылок в неделю…и за три года существования две абузы всего причем одна точно от конкурентов…
    Когда сервис был преступно молод - хватало виртуального хоста и джумлы точнее тогда еще мамбы и тамошнего компонента рассылок. Вот он-то фигачил адреса в bcc и это оказалось плохо т.к подписчики стали находить друг друга мимо нашего сервиса… Так что хоть я и не спамер ни одно из ваших решений мне подходит.
    Более мощный сервер, кста найти тоже проблема так как см. выше…
  • phpdude

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

    Spritz Май 14, 2009, 10:08 п.п., спустя 23 минуты 9 секунд

    тогда ставь в очереди да и отсылай потихоньку.
    Сапожник без сапог
  • adw0rd

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

    Spritz Май 15, 2009, 11:18 д.п., спустя 13 часов 10 минут 1 секунду

    По сендмейлу, сейчас еще разок ман прочту - помогу :)


    ЗЫ чем ужасен этот иф?


    тем что после него е в скобках выражение,
    1) читается не удобно
    2) есть еще вероятность того, что кто-то между строчек (if и след. строка) вставит что-то еще
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • vasa_c

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

    Spritz Май 15, 2009, 11:48 д.п., спустя 30 минут 48 секунд

    Можно ли складывать письма в очередь на отправку и эту очередь постепенно разгребать

    Конечно можно. В чём вопрос то?
  • phpdude

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

    Spritz Май 15, 2009, 11:52 д.п., спустя 4 минуты

    © блоги на пыха.ру
    Сапожник без сапог
  • adw0rd

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

    Spritz Май 15, 2009, 4:35 п.п., спустя 4 часа 42 минуты 8 секунд

    Попробуй указать MaxDaemonChildren, он ограничивает кол-во потомков процесса
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • Cheese

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

    Spritz Май 18, 2009, 7:04 п.п., спустя 3 дня 2 часа 29 минут


    Попробуй указать MaxDaemonChildren, он ограничивает кол-во потомков процесса

    Это будет выглядеть так?
          
    $fp = popen( "/usr/sbin/sendmail -t -i -OMaxDaemonChildren=15", "wb" );

    А что произойдет когда скрипт попытается форкнуть "лишний" шестнадцатый сендмейл?
  • Frozzeg

    Сообщения: 5641 Репутация: N Группа: Джедаи

    Spritz Май 18, 2009, 10:01 п.п., спустя 2 часа 57 минут 14 секунд


    если да, то купи еще сервер, у спамеров с баблом вроде напрягой нету

    сервера продают только зарегистрированным компаниям, насколько я знаю
    You can be anything you want to be. Just turn yourself into anything you think that you could ever be.
  • md5

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

    Spritz Май 18, 2009, 10:04 п.п., спустя 2 минуты 32 секунды



    если да, то купи еще сервер, у спамеров с баблом вроде напрягой нету

    сервера продают только зарегистрированным компаниям, насколько я знаю
    пардон?
    все умрут, а я изумруд

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