Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
prudkiy
180 / 148 / 55
Регистрация: 21.07.2013
Сообщений: 947
1

Организация email рассылки

17.06.2015, 02:11. Просмотров 1784. Ответов 21
Метки нет (Все метки)

Всем доброго ) Я вот задался вопросом рассылки email, как-то с "одиночными" оправками то все норм, работаю с phpMailer. Но вот нужно сделать рассылку на нуууууууу очень большое количество адресов и тут как-то все не идет.
Если так-же отправлять через phpMailer, наполняя список адресов с базы то скрипт отправляет не больше 50 и стает. Точней он вроде и работает но письма уже не идут и чтоб пошло нужно зайти на почтовый сервис (а использую я mail.ru) и отправить на прямую письмо куда либо.
Это совсем не дело, рассматривать хотя-бы базу в 1000 не выходит.
Я вот думаю что нужно по другому и + еще из сервером повозиться. Но вот как... пробовал smtp как он есть но хрень в том что в письмах есть изображения которые не идут и не все ящики получали.
Про функцию php mail() вообще молчу.

Может кто писал грамотный код для рассылки или знает что и как то прошу помочь.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.06.2015, 02:11
Ответы с готовыми решениями:

Email рассылки свой скрипт или MailChimp?
Предложили заняться большим проектом. Для социальной сети нужно реализовать возможность отправления...

Скрипт для рассылки email через smtp gmail, не отрабатывает до конца
Здравствуйте, написал небольшой скрипт, который подключаясь к почте на Gmail через smtp, циклом...

Организация массовой рассылки средствами PHPMailer на обычном хостинге
Здравствуйте! Есть задача организовать массовую рассылку, среди всех подписавшихся на неё...

Заменить все email в этом тексте на '[email]'
Дан текст. Заменить все email в этом тексте на ''. Например, 'пишите мне на...

Как сравнить email, который ввели с email, который имеется в массиве
Добрый день. Есть файл 1.php массивом с несколькими электронными адресами, например: <?php...

21
KeyGen
384 / 291 / 21
Регистрация: 07.08.2011
Сообщений: 790
Записей в блоге: 1
17.06.2015, 02:34 2
Используйте уже готовые сервисы например Amazon SES и уже есть много на его основе библиотек для рассылки.
0
prudkiy
180 / 148 / 55
Регистрация: 21.07.2013
Сообщений: 947
17.06.2015, 03:32  [ТС] 3
KeyGen я знаю о готовых сервисах но как-на меня это не решает проблемы. Так-же можно сказать зачем писать cms, изучать ооп итд. зачем вообще особо думать ведь есть готовые cms, или еще проще - использовать типа wix и быть довольным собой)
0
KeyGen
384 / 291 / 21
Регистрация: 07.08.2011
Сообщений: 790
Записей в блоге: 1
17.06.2015, 03:48 4
Цитата Сообщение от prudkiy Посмотреть сообщение
Так-же можно сказать зачем писать cms, изучать ооп итд
Так же можно написать себе язык нафига юзать php ? Фишка в том что то что Вы хотите написать это даже не цмс - там очень много проблем и их решений (например что бы ваша рассылка не попадала в спам).

Добавлено через 7 минут
И кстате (по опыту):
CMS используют для того что бы быстро сделать простой сайт без постоянной поддержки - сделал и забыл, а дальше пользователь сам долбится со своим сайтом.
Серьезные сайты пишут на web framework.
Чистый php обычно юзают для апи.
Ну а очень крутые сайты - пишут на java например.
0
17.06.2015, 03:48
prudkiy
180 / 148 / 55
Регистрация: 21.07.2013
Сообщений: 947
17.06.2015, 16:06  [ТС] 5
Цитата Сообщение от KeyGen Посмотреть сообщение
CMS используют для того что бы быстро сделать простой сайт без постоянной поддержки
Что за бред? CMS - система управления контентом. Ее может и вообще не быть у сайта если нет таких потребностей (например у лейдинга). У готовых + в том уже все то и готово, самописные выиграют меньшем шансом на взлом, быстродействием, уникальностью(только то что будет нужно админу).

Но это все не по теме и думаю не стоит засорять.

Прошу знающих людей помочь, а не рассказывать про готовые решения итд (мол зачем тебе все это нужно).
0
KeyGen
17.06.2015, 20:22
  #6

Не по теме:

Цитата Сообщение от prudkiy Посмотреть сообщение
У готовых + в том уже все то и готово
И минус в том что сложно там что либо поменять, переписать под себя. Ну за оценку (бред) спасибо.

0
Jewbacabra
17.06.2015, 20:43
  #7

Не по теме:

Цитата Сообщение от prudkiy Посмотреть сообщение
самописные выиграют меньшем шансом на взлом,
готовые решения хорошо тестируются, написаны опытными разработчиками, самому, особенно при недостатке опыта проще пропустить уязвимость.
Цитата Сообщение от prudkiy Посмотреть сообщение
быстродействием
самописность никак не влияет,
Цитата Сообщение от prudkiy Посмотреть сообщение
уникальностью
уникальностью чего?

0
prudkiy
180 / 148 / 55
Регистрация: 21.07.2013
Сообщений: 947
18.06.2015, 09:36  [ТС] 8
Цитата Сообщение от Jewbacabra Посмотреть сообщение
самому, особенно при недостатке опыта проще пропустить уязвимость
в этом вы правы но все же готовые - общедоступные что дает кучу инструкций в сети по взлому того или иного движка. Поэтому все таки считаю что самописные выше по безопасности.
Цитата Сообщение от Jewbacabra Посмотреть сообщение
самописность никак не влияет
влияет на скорость еще и как. Тут спорить глупо, каждый кто работал с самописными и готовыми видел разницу в скорости загрузки страниц и количество кода. Замечу что в самописном его гораздо меньше т.к. разработчику просто поставили вот такие задачи он и написал для этого, такссс сказать - ничего лишнего
Цитата Сообщение от Jewbacabra Посмотреть сообщение
уникальностью чего?
Уникальностью той же структуры, админки, можно все сделать как хочется заказчику, абсолютно все.

Но может уже все таки хватит о cms или давайте откроем для этого тему. Я просил помощи в email рассылке
0
tgarl
357 / 351 / 81
Регистрация: 15.02.2012
Сообщений: 1,366
18.06.2015, 10:54 9
можно попробовать через аякс вызывать обработчик в который передавать по 40-50 адресов: на первой странице получаете список всех адресов кому отправить и передаете аяксом по 40-50 штук на вторую где будет ваш шаблон отправки и сама отправка. в аяксе делаете таймаут, может в этом еще загвоздка. Но это чисто мое предположение, мне большую рассылку(более чем на 30-40 ящиков за раз) отдельно от cms делать не приходилось, может чего не знаю
1
F57
68 / 68 / 23
Регистрация: 17.02.2015
Сообщений: 397
18.06.2015, 11:25 10
Цитата Сообщение от prudkiy Посмотреть сообщение
Но может уже все таки хватит о cms или давайте откроем для этого тему. Я просил помощи в email рассылке
Тебе во втором посте уже дали пример.

(а использую я mail.ru)
Я не удивлён что тебя мейл послал после 50 одинаковых писем.
0
tolimadokara
749 / 417 / 91
Регистрация: 24.10.2012
Сообщений: 3,040
Записей в блоге: 2
18.06.2015, 16:16 11
Цитата Сообщение от prudkiy
нужно сделать рассылку на нуууууууу очень большое количество адресов
Не моё дело. Спам рассылаете что-ли? Это наверное не правда

Мне кажется что ваш вопрос может выйти за рамки языка программирования PHP и класса PHPMailer.

Я в этом совершенно не разбираюсь, но слышал что в сети очень строго со спамом. Весь мир борется со спамом (не тематическая рассылка сообщения на очень большое количество адресов это спам). Я от том что может быть где-то какой то сервер-шлюз воспринимает ваш процесс рассылки большого количества писем как попытку спам рассылки и рассылка не идет. АЛСО, можно почитать о блек-листах. Это вроде черный список адресов серверов с который рассылался спам. Чей IP есть в этой базе, то дальше нескольких серверов от провайдера письмо не отправиться. Как то так. Имхо. Может быть я не прав.

Цитата Сообщение от prudkiy
Я вот думаю что нужно по другому и + еще из сервером повозиться. Но вот как... пробовал smtp как он есть но хрень в том что в письмах есть изображения которые не идут и не все ящики получали.
Изображения можно транспортировать вместе с письмом как вложение к нему, как аттачмент. Как то что прилагается. Так же и файлы. Но что бы в почтовом клиенте отобразилась картинка просто в самом тексте письма в разметке надо прописать тег <IMG SRC="microblog.info/logo.png" /> И то картинка не отобразиться потому что по умолчанию в почтовом клиенте отключена возможность загружать внешнее мультимедиа содержимое с сети. Только если нажмешь кнопку "Разрешить", почтовый клиент подключиться к сети и отобразит изображение. Имхо. Может быть не прав.

Добавлено через 6 минут
Просто где-то ваша рассылка воспринимается как спам рассылка и процесс останавливается на количестве в 50 писем. Может быть из-за хостера. Посмотрите на его ограничения. Можно ему в тех. поддержку написать спросить в чем дело.
1
kosteash
7 / 7 / 3
Регистрация: 03.06.2015
Сообщений: 117
18.06.2015, 16:39 12
Цитата Сообщение от tolimadokara Посмотреть сообщение
АЛСО
немец что ли ?
0
tolimadokara
18.06.2015, 16:49
  #13

Не по теме:

Цитата Сообщение от kosteash
Цитата Сообщение от tolimadokara
АЛСО
немец что ли ?
А если немец - то что? :)

also [en] - тоже.

0
kosteash
7 / 7 / 3
Регистрация: 03.06.2015
Сообщений: 117
18.06.2015, 16:55 14

Не по теме:

Цитата Сообщение от tolimadokara Посмотреть сообщение
А если немец - то что?
Прост ))

also[de] - и так
0
tolimadokara
749 / 417 / 91
Регистрация: 24.10.2012
Сообщений: 3,040
Записей в блоге: 2
18.06.2015, 18:16 15

Не по теме:

Ясно. Не знаю немецкий. Действительно так и переводиться с немецкого.



Добавлено через 50 минут

Не по теме:

http://www.cyberforum.ru/about-forum/announcement2.html

АЛСО не нашлось :scratch:



Добавлено через 17 минут
Цитата Сообщение от F57
Цитата Сообщение от prudkiy
(а использую я mail.ru)
Я не удивлён что тебя мейл послал после 50 одинаковых писем.
Конечно. Там на mail.ru даже после 5 отосланных писем в течении 5 минут может появиться окно с вводом капчи что бы проверить что Вы не робот-программа.

Если это программа то просто прекратиться рассылка писем.

Prudkiy, Вы можете в классе phpMailer включить режим отладки и смотреть как отвечает сервер когда прекращается отправка писем:

https://phpmailer.github.io/PHPMaile...perty_do_debug

Уровень вывода

0 без вывода
1 комманды
2 данные и команды
3 с статусом подключения
4 вывод низкоуровневой информации вот это вроде надо
если не ошибся в переводе

Добавлено через 10 минут
Выкладываю класс MailSender со своего микро фреймворка

Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
<?php 
/* SendMail();
** SmtpDebug();
*/
 
// Класс отправки сообщений на email
class MailSender
{
    public $Parser;
    
    /* Метод отправки сообщения.
    ** @param string $to email получателя
    ** @param string $subject тема сообщения
    ** @param string/html $message текст сообщения 
    ** Можно «html».
    */
    public function SendMail($to, $subject, $message) {
    /* Предварительно создаем заголовки сообщения.
    ** Некоторые почтовые SMTP серверы в отсутствие 
    ** заголовков письма определяют его как «СПАМ».
    */
        // Дата.
        $header = "Date: ".date("D, j M Y G:i:s")." +0700\r\n" ;
        $header .= "From: =?".SENDING_EMAIL_CHARSET."?Q?".str_replace("+","_",str_replace("%","=",urlencode(ADMIN_NAME)))."?= <".SMTP_SERVER_USER.">\r\n" ;
        /* Идентифицируем скрипт как почтовую 
        ** программу «The Bat! v3.99.3»
        */
        $header .= "X-Mailer: The Bat! (v3.99.3) Professional\r\n" ;        
        // Адрес ответа на письмо.
        $header .= "Reply-To: =?".SENDING_EMAIL_CHARSET."?Q?".str_replace("+","_",str_replace("%","=",urlencode(ADMIN_NAME)))."?= <".SMTP_SERVER_USER.">\r\n" ;
        // Приоритет сообщения «3».
        $header .= "X-Priority: 3 (Normal)\r\n" ;
        $header .= "Message-ID: <172562218.".date("YmjHis")."@mail.ru>\r\n" ;
        // Получатель письма.
        $header .= "To: <".$to.">\r\n" ;
        // Тема письма.
        $header .= "Subject: =?".SENDING_EMAIL_CHARSET."?Q?".str_replace("+","_",str_replace("%","=",urlencode($subject)))."?=\r\n" ;
        $header .= "MIME-Version: 1.0\r\n" ;
        /* Тип данных сообщения.
        ** Используется язык «html».
        ** Можно содержимое определить как простой текст.
        ** Гипертектовая разметка text/html.
        ** Простой текст text/plain.
        */
        $header .= "Content-Type: text/html; charset=".SENDING_EMAIL_CHARSET."\r\n" ;
        $header .= "Content-Transfer-Encoding: 8bit\r\n" ;
        
        /* Использовать ли функцию отправки 
        ** писем через внешний smtp сервер?
        */
        if( !USE_EXTERNAL_SMTP_SERVER ) {
            
            /* Используем стандартную php ф-ю mail().
            ** Будет использовано значение параметров в файле 
            ** php.ini. При этом пользователь идентифицируется 
            ** как «Аноним».
            */
            mail($to, $subject, $message, $header);
        } else {
            
            /* Используем внешний smtp сервер.
            ** Cмотрите спецификацию SMTP протокола - «RFC 5321».
            ** Взят пример кода с www.php.su.
            ** «www.php.su/articles/?cat=email&page=007».
            */
            
            /* Флаг отладки процесса отправки письма.
            ** В значении «true» в браузере будут 
            ** отображены ответные команды SMTP сервера.
            */ 
            $SERVER_RESPONCE_OUTPUT = false ;
            
            // Соединямся с сервером.
            $connection = fsockopen('ssl://'.SMTP_SERVER_HOST, SMTP_SERVER_PORT) ;
            
            // Здороваемся с сервером.
            fputs($connection, 'EHLO '.SMTP_SERVER_HOST."\r\n") ;
            $this->SmtpDebug($connection, $SERVER_RESPONCE_OUTPUT);
            // Метод аутентификации «AUTH LOGIN».
            fputs($connection, "AUTH LOGIN\r\n");
            $this->SmtpDebug($connection, $SERVER_RESPONCE_OUTPUT);
            // Сообщаем имя пользователя, и
            fputs($connection, base64_encode(SMTP_SERVER_USER)."\r\n");
            $this->SmtpDebug($connection, $SERVER_RESPONCE_OUTPUT);
            // .. сообщаем пароль пользователя.
            fputs($connection, base64_encode(SMTP_SERVER_PASSWORD)."\r\n");
            $this->SmtpDebug($connection, $SERVER_RESPONCE_OUTPUT);
            // Сообщаем адрес пользователя.
            fputs($connection, 'MAIL FROM: '.SMTP_SERVER_USER."\r\n");
            $this->SmtpDebug($connection, $SERVER_RESPONCE_OUTPUT);
            // Сообщаем адрес доставки.
            fputs($connection, 'RCPT TO: '.$to."\r\n");
            $this->SmtpDebug($connection, $SERVER_RESPONCE_OUTPUT);
            // Сообщаем о отправке сообщ.
            fputs($connection, "DATA\r\n");
            $this->SmtpDebug($connection, $SERVER_RESPONCE_OUTPUT);
            // Сообщаем заголовки сообщения.
            fputs($connection, $header."\r\n");
            $this->SmtpDebug($connection, $SERVER_RESPONCE_OUTPUT);
            // Сообщаем текст сообщения.
            fputs($connection, $message."\r\n.\r\n");
            $this->SmtpDebug($connection, $SERVER_RESPONCE_OUTPUT);
            // Отсоединямся от сервера.
            fputs($connection, "QUIT\r\n");
            $this->SmtpDebug($connection, $SERVER_RESPONCE_OUTPUT);
            
            // Завершаем соединение с «SMTP_SERVER_HOST».
            fclose($connection);
        }
    }
    
    /* Вспомогательная ф-я отладки отправки письма 
    ** через внешний smtp сервер.
    ** @param resource $connection ресурс на сетевое подкл.
    ** @param bool $SERVER_RESPONCE_OUTPUT флаг отладки
    */
    public function SmtpDebug($connection, $SERVER_RESPONCE_OUTPUT) {
        
        // Определение переменной вывода.
        $responce = ''; 
        // Получен ответ сервера?
        while( $str = fgets($connection, 512) ) {
            // Да. Наращивание переменной вывода.
            $responce .= $str ;
            // Получен ответ «200 OK»?
            if( substr($str, 3, 1) == ' ' ) {
                
                break ;
            }
        }   
        // Выводить ответ?
        if( $SERVER_RESPONCE_OUTPUT ) { 
            // Вывод.
            $this->Parser->PageOut("$responce<br/>\r\n");
        }
    }
} ?>


Он точно должен быть рабочий и проверенный. Вам необходимо определить некоторые константы, затем создать объект класса и вызвать метод SendMail. Обязательно для тестового вывода команд установите значение флага $SERVER_RESPONCE_OUTPUT в true. И смотрите что происходит.

Этот класс это сборка из готового решения на php.su.
1
prudkiy
180 / 148 / 55
Регистрация: 21.07.2013
Сообщений: 947
18.06.2015, 22:00  [ТС] 16
Цитата Сообщение от tolimadokara Посмотреть сообщение
Не моё дело. Спам рассылаете что-ли? Это наверное не правда
Как я знаю идет рассылка новостей сайта
Цитата Сообщение от tolimadokara Посмотреть сообщение
Чей IP есть в этой базе
Суть phpMailer в том что он отправляет письма не от имени сервера, а от имени того почтового ящика который я создал на mail.ru, что исключает попадания данного письма в спам
Цитата Сообщение от tolimadokara Посмотреть сообщение
Изображения можно транспортировать вместе с письмом как вложение к нему, как аттачмент. Как то что прилагается. Так же и файлы. Но что бы в почтовом клиенте отобразилась картинк
С этим никаких проблем нету. Содержимое письма отображается как нужно (именно в виде картинке на доступную 100% ширину), если оно доходит конечно.
С чем собственно у меня и проблемы.
Цитата Сообщение от tolimadokara Посмотреть сообщение
Конечно. Там на mail.ru даже после 5 отосланных писем в течении 5 минут может появиться окно с вводом капчи что бы проверить что Вы не робот-программа.
Если это программа то просто прекратиться рассылка писем
Я вот тоже на все это думаю...
Сейчас думаю отправлять данные на обработку скрипту отправки почты аяксом с интервалом. Еще правда не определился с каким.

Как будут результаты отпишу.
Спасибо всем )
0
prudkiy
180 / 148 / 55
Регистрация: 21.07.2013
Сообщений: 947
20.06.2015, 10:54  [ТС] 17
Все нормально, сделал запросы к обработчику через ajax. Кто посоветует хороший почтовый сервис кроме gmail и mail.ru для phpMailer
0
SIM2
0 / 0 / 0
Регистрация: 12.07.2015
Сообщений: 1
12.07.2015, 20:20 18
Наткнулась на программу http://StandartMailer.ru Сама только начинаю выбирать себе подходящий сервис для рассылок, поскольку работа на этом завязана и требуется привлекать новых клиентов и оповещать старых. От себя ничего сказать не могу, но вроде обещают удобный интерфейс, невысокую стоимость и мультифункциональность. Как вам как вариант?
0
prudkiy
180 / 148 / 55
Регистрация: 21.07.2013
Сообщений: 947
12.07.2015, 21:39  [ТС] 19
SIM2, Вы наверно еще не поняли но в топику идет обсуждения о написании рассылки а не использования готовых решений. У клиента особые запросы )
0
Laroux
170 / 165 / 75
Регистрация: 21.11.2014
Сообщений: 1,485
13.07.2015, 09:48 20
Был момент, когда стояла задача рассылки писем большому количеству клиентов (не спама, а именно своим клиентам).
Варианты были разные:
1. Почтовик типа mail.ru и пр.: быстро "блочат" рассылку. Не могу сказать лимит, но он достаточно большой, чтобы работать с отдельными письмами в адекватном объеме;
2. Собственный почтовик. Итогом оказалась блокировка сервера почтовиками, как рассыльшика спама. Эт уже сами юзвери-получатели писем "постарались". Пишем письмо, нас разблокируют, рассылка-две-три... снова бан. И по новой;
3. Итогом всего этого "мучения" стал один из распространенных сервисов по рассылке такого рода писем. Я бы хотел обратить внимание Ваше и Вашего заказчика с "особыми" потребностями, что многие достаточно серьезные проекты используют рассылки именно такими сервисами

Так что, мне кажется, не стоит изобретать "велосипед", тем более, что работа с сервисами рассылки на данный момент очень комфортна, в частности с импортами и экспортами там все очень радостно, + бывают API.

P.S. задайтесь вопросом, как работают "спамеры". Какие технологии используют и Вы все поймете
0
13.07.2015, 09:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.07.2015, 09:48

Массовые Email рассылки
Всем привет Нужен софт по массовой Email рассылке База в несколько десятков миллионов email...

Верстка для Email рассылки
читал пару статей по этому поводу, статьи были 2011го года. хотелось бы узнать правду про нынешние...

Шаблон для email-рассылки
Подскажите пожалуйста, как правильно верстать шаблон для рассылки? Т.е. интересует, можно ли...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru