Отправка массовой электронной почты с помощью PHP

Элемент, внутри которого вы вводите HTML, - это <div class="echo">, где ваш код jQuery ищет что-то еще:

$(this).parent('.echomessage')
//              ^---- should be ".echo" 

Сказав это, я бы порекомендовал вам пересмотреть скрипт на стороне сервера. чтобы вернуть JSON-кодированный ответ и переместить логику его отображения в событие success следующим образом:

$.ajax({
    url: "actions.php",
    type: "POST",
    data: new FormData(this),
    success: function(response) {
        // response could be something like {"success": true, "message": "aaa.txt deleted"}
        $("<span class='closebtn'>CLOSE</span>")
            .appendTo(".echo")
            .after("<br>", response.message)
            .on("click", function() {
                $(this).parent(".echo").fadeOut(500);
            });
        $(".echo").html(data);
    },
});
51
задан Damjan Pavlica 31 March 2015 в 04:00
поделиться

9 ответов

Во-первых, использование функции mail (), поставляемой с PHP, не является оптимальным решением. Он легко помечается как спам, и вам необходимо настроить заголовок, чтобы убедиться, что вы отправляете электронные письма в формате HTML правильно. Что касается того, будет ли работать этот фрагмент кода, он будет работать, но я сомневаюсь, что вы правильно разместите HTML-код внутри него без указания дополнительных заголовков

. Я предлагаю вам взглянуть на SwiftMailer , который имеет поддержку HTML, поддержку различных типов MIME и аутентификацию SMTP (что с меньшей вероятностью пометит вашу почту как спам).

48
ответ дан 7 November 2019 в 09:53
поделиться

Существует больше в него кроме использования программного обеспечения. Если Вы могли бы создать объемную программу подписчика электронной почты, которая отправляет периодически. Скажите, отправите ли Вы 5 000 получателей, создать цикл, который отправил бы 38 списков на отправку затем паузы в течение 10 секунд. У меня есть фактический опыт при отправке 500 вручную в дни в течение прошлых недель, и до сих пор у меня есть хорошие результаты.

Другое соображение содержание Вашей электронной почты. В наше время это - стандарт, что необходимо поместить физический рабочий адрес и "отказываться от подписки" уклонение. Это факторы, которые проверяет большинство почтовых серверов получателя. Если у Вас не будет их, то они классифицируют Вас как спаммера.

Mailchimp является моей лучшей рекомендацией использовать, если Вы хотите заплаченного поставщика услуг в отправке в Вашего почтового подписчика, НЕ отправляющего незапрашиваемый или холодный почтовый маркетинг.

Hope это помогает.

0
ответ дан 7 November 2019 в 09:53
поделиться

Я бы вставлял все электронные письма в базу данных (вроде как в очереди), а затем обрабатывал их по одному, как вы это делали в своем коде (если вы хотите использовать swiftmailer или phpmailer и т.д., вы тоже можете это сделать.)

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

Поместив их в базу данных, вы получите

  1. запись о том, кто вы отправили его на
  2. , если время ожидания сценария истекло или произошел сбой, и вам придется запустить его снова, тогда вы не отправите одно и то же электронное письмо людям дважды
  3. вы можете запустить процесс отправки из задания cron и делайте пакет за раз, чтобы ваш почтовый сервер не перегружался, и отслеживайте, что было отправлено

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

Если вы отправляете так много писем, вы обязательно получите несколько отказов.

31
ответ дан 7 November 2019 в 09:53
поделиться

Also have a look at the PHPmailer class. PHPMailer

3
ответ дан 7 November 2019 в 09:53
поделиться

Also the Pear packages:

http://pear.php.net/package/Mail_Mime http://pear.php.net/package/Mail http://pear.php.net/package/Mail_Queue

sob.

PS: DO NOT use mail() to send those 5000 emails. In addition to what everyone else said, it is extremely inefficient since mail() creates a separate socket per email set, even to the same MTA.

4
ответ дан 7 November 2019 в 09:53
поделиться

Вы можете рассмотреть возможность использования CRON для такого рода операций. Одновременная массовая рассылка, безусловно, нехороша, это может быть определено как спам, ddos, сбой вашего сервера и т. Д.

Таким образом, CRON может быть отличным решением, отправьте 100 писем за раз, затем подождите несколько минут, следующие 100, и т. д.

12
ответ дан 7 November 2019 в 09:53
поделиться

Не отправляйте электронную почту 5000 людям с использованием стандартных инструментов PHP. Большинство интернет-провайдеров забанят вас за секунды, и вы даже не узнаете об этом.

10
ответ дан 7 November 2019 в 09:53
поделиться

Why don't you rather use phplist? It's also built on top of PHP Mailer and a lot of industry leaders are using it. I've used it myself a couple of times to send out bulk mails to my clients. The nice thing about phplist is that you can throttle your messages on a domain level plus a time limit level.

What we've also done with a couple of internal capture systems we've got was to push our user base to the mailling list and then have a cron entry triggering a given mail each day. The possibilities are endless, that's the awesome thing about open source!

8
ответ дан 7 November 2019 в 09:53
поделиться

Это совет, а не ответ: вам гораздо лучше использовать специальное программное обеспечение для списков рассылки. mailman является часто используемым примером, но может быть достаточно чего-нибудь более простого, например mlmmj . Отправка массовых писем на самом деле является более сложной задачей, чем кажется на самом деле. Вы должны не только отправлять почту, но и отслеживать «мертвые» адреса, чтобы ваша почта или, что еще хуже, ваш почтовый сервер не были помечены как спам. Вы должны обрабатывать людей, отказывающихся от подписки по той же причине.

Вы можете реализовать эти вещи самостоятельно, но особенно обработка отказов - трудная и неблагодарная работа. Использование менеджера списков рассылки значительно упростит задачу.

Что касается того, как сделать вашу почту приемлемой для Yahoo, это совсем другой вопрос. Несмотря на все его недостатки, они, кажется, придают большое значение SPF и DomainKey. Вам, вероятно, придется их реализовать, что потребует сотрудничества со стороны администратора вашего почтового сервера.

17
ответ дан 7 November 2019 в 09:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: