В первую очередь: не используйте универсальный скрипт отправителя!Любой сценарий, который получает получателей и тело сообщения из внешнего запроса, является проблемой безопасности.Безопасность сложна, и вы будете делать ошибки, открывая вас для спаммера.Лучше создать несколько сценариев, которые способны отправлять только определенные электронные письма.Например, сценарий contact-us, который жестко задан или предварительно настроен для отправки электронной почты только вам.Скрипт «Расскажи другу», в котором есть жестко заданный или предварительно сконфигурированный шаблон сообщения.
Далее, вы должны быть очень осторожны с помещением всего, что предоставлено вашими пользователями, в заголовок электронной почты (включая темы сообщения, с / ответ-на адреса, и так далее).Конечно, было бы неплохо автоматически установить ответ на адрес электронной почты пользователя, но что, если я введу это в качестве своего адреса электронной почты:
me@example.org\nBCC:spam-target@example.org
Теперь я рассылаю спам другим людям черезВаша контактная форма, даже если эта форма предназначена только для отправки вам почты.
Вы должны относиться ко всему, что пользователь может поместить в заголовок (или к сообщению), так же подозрительно, как и ко всему, что происходит.в запросе SQL.