Безопасно отправьте много писем на PHP - PullRequest
4 голосов
/ 14 января 2012

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

Мне сказали, что использование функции mail () в PHP - плохой выбор, поскольку ее легко пометить как спам.Есть ли способ настроить этот сценарий так, чтобы электронные письма не были помечены как спам?

Я много читал, и из того, что я прочитал сегодня, кажется несколько факторовможет влиять на то, будет ли почта помечена как спам, включая: слова, используемые в электронных письмах;домен, в котором говорится, что электронные письма отправлены, по сравнению с тем, где они на самом деле происходят;форматирование заголовков;и частота отправляемых писем.

Адреса электронной почты, которые мы используем, указаны в приложениях Gmail.Поэтому, если отправляемые мной письма не «выглядят» спамом, я отправляю их из Gmail и могу ограничить частоту отправляемых писем (возможно, 10 раз в 10 минут), тогда я смогу сделать это без проблем, правильно?

РЕДАКТИРОВАТЬ

Это не для новостной рассылки.Должен ли я даже беспокоиться о том, чтобы быть помеченным как спам для приглашений?

Ответы [ 3 ]

3 голосов
/ 14 января 2012

пока ваш вывод верен, ваши рассуждения не совсем верны. Функция почты php не приведет к тому, что ваши письма будут помечены как спам, потому что они отправляют те же письма, что и все остальные.

проблема с функцией почты php заключается в том, что она очень низкого уровня, и поэтому, если вы не знаете, как правильно ее использовать, и оставляете уязвимости, связанные с внедрением электронной почты, люди могут использовать ваш сайт для отправки спам-сообщений через него, и в в свою очередь это может привести ваш сервер в черный список как источник спама от isps. пока вы убираете \ n и \ r из дополнительных полей заголовка (From: и т. д.), вы должны быть в безопасности.

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

Еще одна проблема заключается в том, что он будет подключаться и отключаться от вашего сервера smtp каждый раз, когда вы вызываете mail (), хотя я думаю, что есть способ, которым вы можете отправить несколько электронных писем, используя один вызов на почту. это было бы сложно, хотя, вероятно, потребовалось бы просмотреть rfc282 и выяснить, как это сделать.

0 голосов
/ 14 января 2012

сначала вам нужен действительный mx.record для вашего домена ... если вы используете функцию mail, вы должны отправлять действительные заголовки, подобные этим:

function send_mail($from = FALSE,$to = FALSE, $msg = FALSE, $subject = FALSE, $html= TRUE){
    if($from && $to && $msg && $subject){
        if ($html){
            $header  = 'MIME-Version: 1.0' . "\r\n";
            $header .= 'Content-type: text/html; charset=UTF-8' . "\r\n"; 
        }
            $header .= 'From: '.$from. "\r\n";          
            $header .= 'Reply-To: '.$from. "\r\n";
            $header .= 'X-Mailer: PHP/' . phpversion();
            return mail ($to,$subject,$msg,$header);
    }
    return "fail";
}
0 голосов
/ 14 января 2012

вам нужно использовать SMTP-сервер и после этого подключиться с помощью любой библиотеки php для php. Здесь у вас есть несколько полезных библиотек и несколько примеров

...