Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отправка на МНОГО адресов при помощи mail(), .. с вложением... долго работает 
V
    Опции темы
TheAviator
Дата 10.1.2006, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 28.9.2003
Где: Николаев-Киев

Репутация: нет
Всего: нет



Сабж.
Отправляю на список из 400 адресатов письмо в вложением.
Использую в цикле функцию mail()

Проблемы: при таком количестве адресатов отправка очень долгая. (при малом работает)

Какое есть решение на этот счет.
пока что есть идея в адрес писать не по одному email, а по не сколько - ускорит ли это работу?
И есть ли еще варианты?
Спасибо.
PM MAIL WWW ICQ   Вверх
Bikutoru
Дата 10.1.2006, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлекающийся
**


Профиль
Группа: Участник
Сообщений: 522
Регистрация: 24.5.2005
Где: Москва

Репутация: нет
Всего: 22



Добавляешь в заголовки письма
Код

Bcc: email1, email2, email3, email4

Эта строка означает "отправить на эти адреса скрытую копию письма", адресаты не будут знать друг о друге. Сколько dсего адресов можно написать не знаю, предлагаю поэкпериментировать и выложить результат здесь smile
Добавлено @ 14:52
Проблема заключается в том, что нужно указать какой-то e-mail первым аргументом функции mail и этот e-mail увидят все получатели... Если же его не указать, то могут возникнуть баги с доставкой писем. (Я как-то по глупости при сходной проблеме, указал свой рабочий e-mail, теберь борюсь со спамом smile )


--------------------
Человек, словно в зеркале мир — многолик, 
Он ничтожен — и он же безмерно велик!
Омар Хайям
PM   Вверх
TheAviator
Дата 10.1.2006, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 28.9.2003
Где: Николаев-Киев

Репутация: нет
Всего: нет



Ну в обычную адресную строку 400 адресов работает и отсылает быстро.

Но насчет BCC вопрос такой : Прижелании ведь пользователь может просмотреть чвесь список рассылки или он ему не передается вообще (т.е. его не извлечь фактически никаким методом)? Это важно, т.к. список рассылки нельзя раскрывать по комммерческим соображениям.
PM MAIL WWW ICQ   Вверх
Mal Hack
Дата 10.1.2006, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



Выход такой. Пишем все адреса в файл.
В Крон записываем файл, который выполняется раз сутки, или раз в час.
Он читает это файл и отправляет письма. Отправил - стер адрес из файла.
Есть вариант посложнее, скрипт тоже из под крона отсылает, нро делает это по 5 писем за раз. Скрипт выполняется раз в 5-6 минут.
Это снизит нагрузку немного на сервер.
PM ICQ   Вверх
Alone
Дата 10.1.2006, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 11.5.2003
Где: Dnepropetrovsk, U A

Репутация: нет
Всего: 6



если позволяют настройки сервера - используй пхп функцию set_time_limit()
Описание

void set_time_limit (int seconds)

Устанавливает время в секундах, в течение которого скрипт может работать. Если это значение достигнуто, скрипт возвращает фатальную ошибку. По умолчанию лимит - 30 секунд или, если оно существует, значение max_execution_time, определённое в файле конфигурации. Если seconds имеет значение 0, лимита нет.

При вызове set_time_limit() рестартует счётчик таймаута с нуля. Иначе говоря, если таймаут по умолчанию 30 секунд, прошло 25 секунд выполнения скрипта и сделан такой вызов set_time_limit(20), скрипт будет работать 45 перед таймаутом.

set_time_limit() не действует, если PHP запущен в режиме safe mode. Нет иного выхода, кроме отключения safe mode или изменения лимита времени в файле конфигурации.


--------------------
web developer/telecommunication specialist.
mailto: [email protected]
ICQ#28442924

PM MAIL WWW ICQ   Вверх
Mal Hack
Дата 10.1.2006, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



Это плохой, вариант... Грузит сервер и задержка будет.
PM ICQ   Вверх
TheAviator
Дата 10.1.2006, 23:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 28.9.2003
Где: Николаев-Киев

Репутация: нет
Всего: нет



Хм. проверил в BCC 600 писем загонять. в разные места вставлял 2 свои Email-а.
Отправляет вместе с вложением без особой задержки. оба емэйла письма успешно принимали.
НО....

Содержимое bcс могут вскрыть или нет?
PM MAIL WWW ICQ   Вверх
RaZoR
Дата 11.1.2006, 07:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 6.5.2004
Где: Оренбург

Репутация: нет
Всего: 1



Цитата(TheAviator @ 10.1.2006, 23:25 Найти цитируемый пост)
Содержимое bcс могут вскрыть или нет?

нет.
http://www.antispam.ru/4user/reading-email...anslation.shtml:
Цитата
Bcc: (Blind Carbon Copy - слепая копия) Если вы видите этот заголовок в полученном сообщении - значит, что-то не так. Этот заголовок используется так же, как и "Cc:" (см. ниже), но не появляется в списке заголовков. Основная идея этого заголовка заключается в возможности посылать копии письма людям, которые не хотят получать ответы или появляться в заголовках.
только учти, что у некоторых людей стоит фильтр примерно следующего типа:
если поле КОМУ (To: ) не содержит мой e-mail, то письмо удалять.
так что лучше отсылать каждому адресату отдельно используя cron или сделать перезапуск скрипта через <meta> с меняющимся параметром.
PM MAIL ICQ   Вверх
TheAviator
Дата 11.1.2006, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 28.9.2003
Где: Николаев-Киев

Репутация: нет
Всего: нет



Цитата(RaZoR @ 11.1.2006, 07:44)
Цитата(TheAviator @  10.1.2006,  23:25 Найти цитируемый пост)
Содержимое bcс могут вскрыть или нет?

нет.

хм. Ну то что почтовые клиенты строку bcc не показывают - это понятно.
А если просмотреть содержимое заголовков просто, то там ведь и bcc есть?
Значит враги могут заполучить мой список рассылки?
PM MAIL WWW ICQ   Вверх
Mal Hack
Дата 11.1.2006, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



Цитата(TheAviator @ 10.1.2006, 23:25 Найти цитируемый пост)

Содержимое bcс могут вскрыть или нет?

Как нет, в заголовках все равно идет и потом пользователь будет видеть не свой email в поле КОМУ.
PM ICQ   Вверх
TheAviator
Дата 11.1.2006, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 28.9.2003
Где: Николаев-Киев

Репутация: нет
Всего: нет



Цитата(Mal Hack @ 10.1.2006, 18:43)
Выход такой. Пишем все адреса в файл.
В Крон записываем файл, который выполняется раз сутки, или раз в час.
Он читает это файл и отправляет письма. Отправил - стер адрес из файла.
Есть вариант посложнее, скрипт тоже из под крона отсылает, нро делает это по 5 писем за раз. Скрипт выполняется раз в 5-6 минут.
Это снизит нагрузку немного на сервер.

Хм. Идея неплохая, но не совсем все понятно.

Вариант 1: Скрипт должен в цикле отправлять поочереди функцией mail все адреса? А он не подвиснет 400 адресов лопатить?

Вариант2: Если по 5 адресов раз в 5 минут, то последние дойдут с ооочень большой задержкой.

пока что все варианты сделать рассылку завалились.
(последнее что делал это в цикле отправлл по 5 bcc, итого около 100 проходов цикла. почту на мои адреса, который в самом конце списка находились отправила минут через 5, но сам веб-интерфейс повис и написал об превышении интервала минут через 10 - это плохо)
PM MAIL WWW ICQ   Вверх
RaZoR
Дата 11.1.2006, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 6.5.2004
Где: Оренбург

Репутация: нет
Всего: 1



Цитата(TheAviator @ 11.1.2006, 10:56 Найти цитируемый пост)
хм. Ну то что почтовые клиенты строку bcc не показывают - это понятно. А если просмотреть содержимое заголовков просто, то там ведь и bcc есть?Значит враги могут заполучить мой список рассылки?
нет. прочитай по ссылке внимательней. там написано, что после отправки письма и до прихода адресату, заголовки меняются. и bcc в принятом письме видно быть не должно.
PM MAIL ICQ   Вверх
Mal Hack
Дата 11.1.2006, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



Цитата(TheAviator @ 11.1.2006, 13:18 Найти цитируемый пост)

Вариант 1: Скрипт должен в цикле отправлять поочереди функцией mail все адреса? А он не подвиснет 400 адресов лопатить?

Для этого можно делать разбивкуу и отправлять по 5 писем.
Цитата(TheAviator @ 11.1.2006, 13:18 Найти цитируемый пост)

Вариант2: Если по 5 адресов раз в 5 минут, то последние дойдут с ооочень большой задержкой.

Можно и меньше делать щадержку... Я образно говорил.
Цитата(RaZoR @ 11.1.2006, 13:20 Найти цитируемый пост)

нет. прочитай по ссылке внимательней. там написано, что после отправки письма и до прихода адресату, заголовки меняются. и bcc в принятом письме видно быть не должно.

В заголовках все равно остается.
PM ICQ   Вверх
TheAviator
Дата 11.1.2006, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 28.9.2003
Где: Николаев-Киев

Репутация: нет
Всего: нет



Вопросы возникли следующие:
1)
>> Для этого можно делать разбивку и отправлять по 5 писем.
у меня как раз сейчас отправляет по 5 писем.( правда без Cron - а чем сним будет лучше ?). Зависает в цикле отправлять сотню писем с вложением на 180кб.

2) Насколько малой можно сделать задержку (у меня есть веб-интерфес от Cpanel для упраления cron) и как?
можно действительно сделать таблицу с почтой для отправки и лопатить пачкой по 5 bcc например раз в 5 секунд.. или так часто нельзя настроить чтоб крон отправлял?
А можно ли не раз в определенное время, а чтобы вообще постоянно запуска - т.е. выполнил, снова запустил и т.д.?

3)
неплохо бы было написать о каких-то резльтатах работы при отправке... опять же сложность.

4) каким образом форумы, например, могут отправлять письма огромному числу своих пользоватлей без использования cron ? Cron действительно необходимая в данном случае вещь... неужели нет ничего лучше и более простого?

PM MAIL WWW ICQ   Вверх
Bikutoru
Дата 11.1.2006, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлекающийся
**


Профиль
Группа: Участник
Сообщений: 522
Регистрация: 24.5.2005
Где: Москва

Репутация: нет
Всего: 22



Вот заголовки (немного подредактированные) присланного мне письма, в котором точно было около 50 получателей
Цитата

Return-path: <***@***.ru>
Envelope-to: ***@***.ru
Delivery-date: Sat, 31 Dec 2005 11:18:04 +0300
Received: from [213.***.***.109] (helo=***.ru)
        by ***.ru with esmtp (Exim 3.36 #1)
        id 1EsbwC-0000mB-00
        for ***@***.ru; Sat, 31 Dec 2005 11:18:04 +0300
Received: from ***.ru (***.ru [127.0.0.1])
        by ***.ru (8.12.11/8.12.11) with ESMTP id jBV868fW063526;
        Sat, 31 Dec 2005 11:06:08 +0300 (MSK)
        (envelope-from ***@***.ru)
Received: (from root@localhost)
        by ***.ru (8.12.11/8.12.11/Submit) id jBV868tY063525;
        Sat, 31 Dec 2005 11:06:08 +0300 (MSK)
        (envelope-from root)
Date: Sat, 31 Dec 2005 11:06:08 +0300 (MSK)
Message-Id: <200512310806.jBV868tY063525@***.ru>
To: ***@***.ru
Subject: =?windows-1251?B?ze7i7vHy6CDRyMzPy8XK0Q===?=
From: *** <***@***.ru>
Content-Type: text/html; charset=windows-1251
Content-Transfer-Encoding: 8bit

Как видите никакого Bcc там нет. Он же и называется "Скрытая копия", какая же она будет скрытая, если её может увидеть любой человек, "догадавшийся" посмотреть заголовки письма.


--------------------
Человек, словно в зеркале мир — многолик, 
Он ничтожен — и он же безмерно велик!
Омар Хайям
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Для профи | Следующая тема »


 




[ Время генерации скрипта: 0.0860 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.