Отправка почты на php

Добавил: WorldPad, 2012-04-06 03:14:19. Просмотров: 1855. Категория: Уроки PHP

Отправка почты на php

Отправка почты на php с использованием функции mail().

 

Самый простой пример отправить сообщение на электронный ящик выглядит так

 

mail($to, $title, $mess,  $headers  );

 

В первом параметре указываем адрес куда отправлять наше письмо (почтовый ящик).

Затем указываем тему сообщения и само сообщение.

 

В качестве четвёртого параметра можно указать заголовки сообщения.

 

 

$headers  "Content-type: text/html; charset=windows-1251 \r\n"; 

 

В заголовках можно указать кодировку текста и тип ( html или простой текст ).

 

Так же функция mail() при удачной отправке возвращает TRUE и FALSE если письмо не отправлено.

 

Ниже приведён пример отправки почты на php:

 

<?php
// если была нажата кнопка "Отправить"
if($_POST['submit']) {
        
// $_POST['title'] содержит данные из поля "Тема", trim() - убираем все лишние пробелы и переносы строк, htmlspecialchars() - преобразует специальные символы в HTML сущности, будем считать для того, чтобы простейшие попытки взломать наш сайт обломались, ну и  substr($_POST['title'], 0, 1000) - урезаем текст до 1000 символов. Для переменной $_POST['mess'] все аналогично
        
$title = substr(htmlspecialchars(trim($_POST['title'])), 0, 1000);
        
$mess =  substr(htmlspecialchars(trim($_POST['mess'])), 0, 1000000);
        
// $to - кому отправляем
        
$to = 'test@test.ru';
        
// $from - от кого
        
$from='test@test.ru';
        
// функция, которая отправляет наше письмо.
        
mail($to, $title, $mess, 'From:'.$from);
        echo
'Спасибо! Ваше письмо отправлено.';
}
?>
<form action="" method=post>

<p>Вводный текст перед формой <p>
              <div align="center">
              Teма<br />
              <input type="text" name="title" size="40"><br />
              Сообщение<br />
              <textarea name="mess" rows="10" cols="40"></textarea>
              <br />
              <input type="submit" value="Отправить" name="submit"></div>
</form>

 

Для фильтрации данных используем функции  substr () , htmlspecialchars(), trim ().

 

Пользовательская функция отправки сообщения с вложением:

<?php
function XMail$from$to$subj$text$filename) {
    
$f         fopen($filename,"rb");
    
$un        strtoupper(uniqid(time()));
    
$head      "From: $from\n";
    
$head     .= "To: $to\n";
    
$head     .= "Subject: $subj\n";
    
$head     .= "X-Mailer: PHPMail Tool\n";
    
$head     .= "Reply-To: $from\n";
    
$head     .= "Mime-Version: 1.0\n";
    
$head     .= "Content-Type:multipart/mixed;";
    
$head     .= "boundary=\"----------".$un."\"\n\n";
    
$zag       "------------".$un."\nContent-Type:text/html;\n";
    
$zag      .= "Content-Transfer-Encoding: 8bit\n\n$text\n\n";
    
$zag      .= "------------".$un."\n";
    
$zag      .= "Content-Type: application/octet-stream;";
    
$zag      .= "name=\"".basename($filename)."\"\n";
    
$zag      .= "Content-Transfer-Encoding:base64\n";
    
$zag      .= "Content-Disposition:attachment;";
    
$zag      .= "filename=\"".basename($filename)."\"\n\n";
    
$zag      .= chunk_split(base64_encode(fread($f,filesize($filename))))."\n";
    
    return @
mail("$to""$subj"$zag$head);
}
?>

 

Ну вот и всё.

Урок php "отправка почты на php" подготовлен сайтом Arts-UP.ru