PHP
Отправка писем при помощи PHP
Рано или поздно каждый владелец сайта сталкивается с необходимостью отправки писем непосредственно с сайта через скрипт, а не через почтовые программы. Это могут быть письма, отправляемые скриптом гостевой книги, сообщающее владельцу сайта что у него в гостевой появилось новое сообщение, или форумом, для оповещения о новом вопросе. Во всех этих случаях необходима именно автоматическая отправка писем миную разнообразные почтовые программы и утилиты.Сделать это можно при помощи функции mail(), которую мы сейчас и будем изучать. Синтаксис функции mail(): bool mail(string $to, string $subject, string $msg [, string $header]); Функция mail() посылает письмо с темой $subject и содержанием $msg по адресу $to. Если Вы хотите, чтобы письмо ушло по нескольким адресам, разделите их пробелами. Само сообщение может быть многострочным. Для перехода на новую строку поставьте знак перехода на новую строку "\n" в конце каждой строки. mail("name@mail.ru", "my subject", "stroka1nstroka2nstroka3");
Или тотже самое можно записать так: mail("name@mail.ru", "my subject", "stroka1 stroka2 stroka3");
В четвертом необязательном параметре $header можно указать заголовки нашего сообщения. Под заголовками я подразумеваю информацию, передаваемую вместе с письмом почтовому клиенту, которая будет содержать некоторые технические данные, такие как: кодировка письма, имя отправителя, обратный адрес отправителя и т.д. Это схоже с использованием тега <META> в HTML. Чтобы было более понятно, что из себя представляют заголовки, и где они находятся в письме, откройте почтовый клиент и посмотрите на любое письмо в том виде, как оно пришло (Для Outlook это можно сделать нажав правой клавишей мыши на сообщение-Свойства-Подробно-Исходное сообщение). Как мы видим, письмо представляет простой текстовой файл, состоящий из двух общих разделов:Вверху идут заголовки письма, затем через две строки идет само письмо. Заголовков письма достаточно много, но не все они используются при написании скрипта отправки почты. Вот некоторые наиболее часто используемые: Я не зря выше привел пример отправки письма со словами латинского алфавита. Их любой почтовый клиент прочтет без труда. Но вот с русским алфавитом труднее. Русских кодировок существует огромное множество. И от того, насколько умело Вы перекодируете письмо, будет зависеть прочтет ли получатель его, или не будет возиться с установкой нужной кодировки и просто удалит его в корзину. Кодировку письма задает заголовок Content-type: $header="From: "Evgen" <evgen@mail.ru>"; $header.="Content-type: text/plain; charset="windows-1251""; $subject="Тема письма"; $msg="Сторака 1nСтрока 2nСтрока 3"; mail("name@mail.ru", $subject, $msg, $header);
В заголовке мы указали, что тип письма будет простой текст, а кодировка - Windows. Теперь наше письмо придет в понятной для почтового клиента кодировке. Но стоит отметить, что в некоторых случаях в правильной кодировке будет отображено только само письмо. Заголовок же так и останется нечитаемым. Связано это с тем, где расположен заголовок Content-type относительно заголовка Subject, который и содержит тему письма. Дело в том, что существуют почтовые программы, которые понимают заголовок Content-type, но не понимают русский текст в поле Subject, если это поле стоит до Content-type. В то же время, другие почтовые программы обязывают нас задавать Content-type последним заголовком в списке. Чтобы обойти эти препятствия, можно разместить поле Content-type сразу в начале и в конце списка заголовков: $subject="Тема письма"; $header="Content-type: text/plain; charset="windows-1251""; $header.="From: Evgen <evgen@mail.ru>"; $header.="Subject: $subject"; $header.="Content-type: text/plain; charset="windows-1251""; $msg="Сторака 1nСтрока 2nСтрока 3"; mail("name@mail.ru", $subject, $msg, $header);
Теперь это письмо прочтет любая почтовая программа! Для отправки письма в HTML-виде достаточно в заголовке Content-type указать тип документа не text/plain (простой текст), а text/html (html-текст). А само письмо записать в html-виде: $subject="Тема письма"; $header="Content-type: text/html; charset="windows-1251""; $header.="From: Evgen <evgen@mail.ru>"; $header.="Subject: $subject"; $header.="Content-type: text/html; charset="windows-1251""; $msg="<body> <li>Сторака 1 <li>Сторака 2 <li>Сторака 3 </body>"; mail("name@mail.ru", $subject, $msg, $header);
Смотреть также
После создания нового COM-объекта, можно обращаться к его свойствам и методам: <?php $xls = new COM("Excel.Application"); // Создаем новый COM-объект $xls->Application->Visible = 1; // Заставляем его отобразиться $xls->Workbooks->Add(); // Добавляем новый документ
$rangeValue = $xls->Range("A1"); $rangeValue->Value = "В выделенном блоке текст будет жирный, подчеркнутый, наклонный"; $rangeValue = $xls->Range("A2"); $rangeValue->Value = "Шрифт будет иметь высоту 12"; $rangeValue = $xls->Range("A3"); $rangeValue->Value = "Имя шрифта - Times New Roman";
$range=$xls->Range("A1:J10"); // Определяем область ячеек $range->Select(); // Выделяем ее $fontRange=$xls->Selection(); // Присваиваем переменной выделенную область
// Далее задаем параметры форматирования текста в выделенной области $fontRange->Font->Bold = true; // Жирный $fontRange->Font->Italic = true; // Курсив $fontRange->Font->Underline = true; // Подчеркнутый $fontRange->Font->Name = "Times New Roman"; // Имя шрифта $fontRange->Font->Size = 12; // Размер шрифта
?>
Форум по PHP http://forum.spravkaweb.ru/index.php?showforum=2
Официальный сайт PHP www.php.net
Библиотека скриптов PEAR pear.php.net
Отправка писем при помощи PHP
Рано или поздно каждый владелец сайта сталкивается с необходимостью отправки писем непосредственно с сайта через скрипт, а не через почтовые программы. Это могут быть письма, отправляемые скриптом гостевой книги, сообщающее владельцу сайта что у него в гостевой появилось новое сообщение, или форумом, для оповещения о новом вопросе. Во всех этих случаях необходима именно автоматическая отправка писем миную разнообразные почтовые программы и утилиты.Сделать это можно при помощи функции mail(), которую мы сейчас и будем изучать. Синтаксис функции mail(): bool mail(string $to, string $subject, string $msg [, string $header]); Функция mail() посылает письмо с темой $subject и содержанием $msg по адресу $to. Если Вы хотите, чтобы письмо ушло по нескольким адресам, разделите их пробелами. Само сообщение может быть многострочным. Для перехода на новую строку поставьте знак перехода на новую строку "\n" в конце каждой строки. mail("name@mail.ru", "my subject", "stroka1nstroka2nstroka3");
Или тотже самое можно записать так: mail("name@mail.ru", "my subject", "stroka1 stroka2 stroka3");
В четвертом необязательном параметре $header можно указать заголовки нашего сообщения. Под заголовками я подразумеваю информацию, передаваемую вместе с письмом почтовому клиенту, которая будет содержать некоторые технические данные, такие как: кодировка письма, имя отправителя, обратный адрес отправителя и т.д. Это схоже с использованием тега <META> в HTML. Чтобы было более понятно, что из себя представляют заголовки, и где они находятся в письме, откройте почтовый клиент и посмотрите на любое письмо в том виде, как оно пришло (Для Outlook это можно сделать нажав правой клавишей мыши на сообщение-Свойства-Подробно-Исходное сообщение). Как мы видим, письмо представляет простой текстовой файл, состоящий из двух общих разделов:Вверху идут заголовки письма, затем через две строки идет само письмо. Заголовков письма достаточно много, но не все они используются при написании скрипта отправки почты. Вот некоторые наиболее часто используемые: Я не зря выше привел пример отправки письма со словами латинского алфавита. Их любой почтовый клиент прочтет без труда. Но вот с русским алфавитом труднее. Русских кодировок существует огромное множество. И от того, насколько умело Вы перекодируете письмо, будет зависеть прочтет ли получатель его, или не будет возиться с установкой нужной кодировки и просто удалит его в корзину. Кодировку письма задает заголовок Content-type: $header="From: "Evgen" <evgen@mail.ru>"; $header.="Content-type: text/plain; charset="windows-1251""; $subject="Тема письма"; $msg="Сторака 1nСтрока 2nСтрока 3"; mail("name@mail.ru", $subject, $msg, $header);
В заголовке мы указали, что тип письма будет простой текст, а кодировка - Windows. Теперь наше письмо придет в понятной для почтового клиента кодировке. Но стоит отметить, что в некоторых случаях в правильной кодировке будет отображено только само письмо. Заголовок же так и останется нечитаемым. Связано это с тем, где расположен заголовок Content-type относительно заголовка Subject, который и содержит тему письма. Дело в том, что существуют почтовые программы, которые понимают заголовок Content-type, но не понимают русский текст в поле Subject, если это поле стоит до Content-type. В то же время, другие почтовые программы обязывают нас задавать Content-type последним заголовком в списке. Чтобы обойти эти препятствия, можно разместить поле Content-type сразу в начале и в конце списка заголовков: $subject="Тема письма"; $header="Content-type: text/plain; charset="windows-1251""; $header.="From: Evgen <evgen@mail.ru>"; $header.="Subject: $subject"; $header.="Content-type: text/plain; charset="windows-1251""; $msg="Сторака 1nСтрока 2nСтрока 3"; mail("name@mail.ru", $subject, $msg, $header);
Теперь это письмо прочтет любая почтовая программа! Для отправки письма в HTML-виде достаточно в заголовке Content-type указать тип документа не text/plain (простой текст), а text/html (html-текст). А само письмо записать в html-виде: $subject="Тема письма"; $header="Content-type: text/html; charset="windows-1251""; $header.="From: Evgen <evgen@mail.ru>"; $header.="Subject: $subject"; $header.="Content-type: text/html; charset="windows-1251""; $msg="<body> <li>Сторака 1 <li>Сторака 2 <li>Сторака 3 </body>"; mail("name@mail.ru", $subject, $msg, $header);
Смотреть также
Из PHP в Excel: работа с COM-объектами
Данная серия статей посвящена созданию документов Excel при помощи PHP. Данная возможнось может понадобиться, например, если нужно предоставить пользователю загружаемые данные в виде листов Excel. Это могут быть прайсы на продукцию, автоматически генерируемые из базы данных на сервере, либо какие-то документы, которые также необходимо представить в виде документов Excel. Здесь рассматривается возможность работы с Excel-документами через COM-объект. К сожалению работа с COM-объектами в PHP возможна только на Windows-платформах. По-этому если Вы используете Unix-хостинг, то создавать и редактировать Excel-документы приведенным ниже способом не получится. Работа с COM-объектами производится при помощи синтаксиса $com_object = new COM($object); где Для создания Excel-документов переменной $object необходимо задать значение "Excel.Application" либо "Excel.sheet". $xsl = new COM("Excel.Application");После создания нового COM-объекта, можно обращаться к его свойствам и методам: <?php $xls = new COM("Excel.Application"); // Создаем новый COM-объект $xls->Application->Visible = 1; // Заставляем его отобразиться $xls->Workbooks->Add(); // Добавляем новый документ
$rangeValue = $xls->Range("A1"); $rangeValue->Value = "В выделенном блоке текст будет жирный, подчеркнутый, наклонный"; $rangeValue = $xls->Range("A2"); $rangeValue->Value = "Шрифт будет иметь высоту 12"; $rangeValue = $xls->Range("A3"); $rangeValue->Value = "Имя шрифта - Times New Roman";
$range=$xls->Range("A1:J10"); // Определяем область ячеек $range->Select(); // Выделяем ее $fontRange=$xls->Selection(); // Присваиваем переменной выделенную область
// Далее задаем параметры форматирования текста в выделенной области $fontRange->Font->Bold = true; // Жирный $fontRange->Font->Italic = true; // Курсив $fontRange->Font->Underline = true; // Подчеркнутый $fontRange->Font->Name = "Times New Roman"; // Имя шрифта $fontRange->Font->Size = 12; // Размер шрифта
?>
Полезные ссылки
Форум по PHP http://forum.spravkaweb.ru/index.php?showforum=2
Официальный сайт PHP www.php.net
Библиотека скриптов PEAR pear.php.net