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

XSS уязвимость во Flash (Action Script)

Как отправить почту в PHP, функция mail


Для отправки почты в языке программирования PHP, существует функция mail(), которая имеет четыре параметра. Первые три из них являются обязательными.
Отправка почты в PHP
boolean mail (string $to_mail, string $title, string $body [, string $headers [, string $parameters ]] )

  В первом параметре (переменной $to_mail ) необходимо указать получателя почты, переменная строкового типа.
  Во втором параметре (переменной $title ) указывается тема сообщения.
  Третий параметр (переменная $body ) содержит декст сообщения.

Но, самым интересным, является необязательный, четвертый параметр, который отвечает за кодировку письма, почту отправителя и email для обратной связи. Следовательно, злоумышленнику ничего не мешает подделать заголовок отправителя и с помощью социальной инженерии узнать у получателя секретную закрытую информацию.

Скрипт для отправки почты на PHP


Пример скрипта для отправки почты на PHP, может выглядеть следующим образом:

<?php mail("test@gmail.com", "Тема сообщения", "Здравствуйте! Это тестовая отправка почты на PHP."); ?>

Ошибки при отправке почты на PHP


Во время работы скрипта может выскочить ошибка "Fatal error: Call to undefined function: mail()", которая означает, что в конфигурации PHP не включена функции mail, или она просто запрещена в настройках веб сервера. Как правило, многие бесплатные хостинговые компании не поддерживают функцию отправки почты mail(), но бесплатный хостинг hut, на котором расположен этот сайт, на мое удивление, во время тестирования скрипта, все-таки почту отправлял. За что ему огромное спасибо.:). В конфигурации PHP существует временное ограничение на работу PHP сценария (скрипта), и обычно это 30 секунд. Если скрипт отправки почты не уложится в это время, то его работа будет прервана. В зависимости от мощности сервера и функционала самого сценария, в среднем за 30 секунд PHP скрипт может отправить от 100 до 500 писем.

 

Не рекомендуется увеличивать время для обработки одного сценария в файле конфигурации php.ini, поэтому в самом скрипте можно указать другое время для выполнения, которое будет распрастраняться только на этот сценарий. Делается это с помощью функции set_time_limit(100); в скобочках которой необходимо указать другое врямя в секундах, в моем примере это 100 секунд.
Пример и подробное описание скрипта рассылки писем на PHP вы можете посмотреть здесь.

Проблемы с кодировкой при отправке почты на PHP

Проблема с кодировкой отправляемых писем, наверное одна из самых распространенных при создании скрипта рассылки. Лично я, как человек неоднократно создающий различные скрипты для отправки почты, одно знаю точно: Для того, чтобы корректно отправлялись и соответственно приходили электронные письма в нормальной кодировке, необходимо проконтролировать соответствие кодировки на сервере с которого отправляется почта, кодировке самого PHP сценария и кодировке отправляемого сообщения, которая указывается в четвертом параметре функции mail(). В данном случае, везде должна быть одна кодировка.

 

 

 
X