19.02.2012

Отправка mail средствами PHP

Отправка почты из PHP возможна и она легка в реализации - это одна сторона медали. Вторая сторона, что по-моему это одна из самых спамерских функций во всех языках программирования. Но мы будем изучать ее с "хорошей" стороны :)



Итак отправка нашего электронного письма происходит с помощью встроенной функции mail() доступной начиная с php 4-ой версии, синтаксис её такой:

bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )


На вход функции mail подается от 3 до 5 параметров:
  • $to:             Email-адрес кому мы отсылаем сообщение
  • $subject:     Тема письма
  • $message:  Текст письма
  • $additional_headers:       Заголовки письма
  • $additional_parameters:  Дополнительные параметры
C первыми тремя параметрами думаю всё понятно, рассмотрим 2 необязательных параметра.
Заголовки письма добавляются по спецификации RFC2822, чтобы что-то понять, надо штудировать сотни страниц английского текста, рассмотрим основные, которые могу пригодиться
From: noreply@phpprogs.ru - указывает с какого Email приходит сообщение
Reply-To: admin@phpprogs.ru - указывает на какой Email должно отсылаться письмо при ответе
Content-type: text/plain; charset=Windows-1251 - указывает тип сообщения и кодировку, если хотите чтобы в письме был HTML, то вместо text/plain укажите text/html
X-Priority: 1 (Higuest) - приоритет сообщения
X-Mailer: CMS-Kolibry - почтовая программа, отправившая сообщение
Со последним параметром не всё так однозначно, применение нашел только когда пользовался услугами хостинга руцентра, там при использовании это функции в поле "ОТ" стоял адрес руцента, помог именно этот параметр, если указать "-fnoreply@php.ru", то будет корректно отображать поле "ОТ".
Рассмотрим пример отправки:


Пример работы функции mail()


<?php

 $to 
"admin@php.ru";
 
$subject "Тема письма";
 
$message "Текст сообщения";
 
$headers "From: noreply@phpprogs.ru\r\n".
 
"Content-type: text/plain; charset=Windows-1251\r\n";

 
$ok mail ($to$subject$message$headers);

 if (
$ok === false)
 {
  echo 
"Письмо отправлено";
 }
 else
 {
  echo 
"Ошибка при отправке письма";
 }

?>



Поделиться:




















0 коммент.:

Отправить комментарий

ваш комментарий...



Copyright and Design by Alexander Mikhailov 2009-2012 http://studyphp.blogspot.com. Технологии Blogger.