Шаблон отправки сообщений с сайта

Статья устарела. Используйте метод Email::send().

Для получения писем от посетителей сайта, можно воспользоваться данной формой. При этом почтовый ящик получателя в коде странички не приводится, а значит он не доступен для спамеров.

Шаблон с предобработчиком шаблона (mail.tpl):
# Предобработчик шаблона
<?php
if ($_POST['message'])
{   
    $subject = 'message from site';
    
    # HTTP-заголовки для отправки сообщения в формате HTML
    $headers  = "MIME-Version: 1.0\n";
    $headers .= "Content-type: text/html; charset=utf-8\n";
    $headers .= "X-Priority: 3\n";
    $headers .= "X-MSMail-Priority: Normal\n";
    $headers .= "X-Mailer: php\n";

    # Сообщение в формате HTML
    $msg = "
        <!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>
        <html>
        <head>
            <meta 
            http-equiv='Content-Type' 
            content='text/html; charset=utf-8'
            >
        </head>
        <body>
            <h3>$dat[1]</h3>
            <p>{$_POST['message']}</p>
        </body>
        </html>
    ";      

    # Отправка сообщения и формирование отчета
    if (mail($dat[2], $subject, $msg, $headers)) 
        $notice = "Ваше сообщение отправлено";
    else
        $notice = "
            Ваше сообщение отправить не удалось. 
            Попробуйте повторить позднее.
        ";
}
?>


# Непосредственно шаблон
<?php echo "
    <form action='?' method='post'>
        {$dat['edit']}
        {$notice}
        $dat[1]
        <textarea name='message'></textarea><br>
        <input type='submit' value='ok'>
    </form>
"; ?>


Дескриптор шаблона (mail.tdd):
<?php
    $titles[1] = 'Название формы';
    $titles[2] = 'Email для получения сообщений с сайта';

    $types[1] = 'varchar(255)';
    $types[2] = 'varchar(99)';
?>

См. также