Notice: Undefined variable: this in /home/dimarini/public_html/libraries/src/Application/CMSApplication.php on line 441

Изпращане на PHP e-mail


С PHP могат да се изпращат e-mail съобщения директно от кода. PHP функция mail()
Тази функция се използва за изпращане на e-mail от кода в php файл. Синтаксис:


    mail(до,предмет,съобщение,заглавия,параметри)

  • до - Задължителен параметър с който се определя получателя/получателите на мейла.
  • предмет - Задължителен параметър с който се определя темата на мейла. Този параметър не може да съдържа символи за нов ред.
  • съобщение - Задължителен параметър, който представлява самото съобщение. Всеки ред се разделя от следващия с (\n), като редовете не трябва да надвишават 70 символа.
  • заглавия - Опция с която се определят допълнителни заглавия като From (e-mail адрес и име на автора), Cc (Carbon copy - копие под индиго) и Bcc (Blind carbon copy - адреси добавени към списъка за доставка SMTP).
  • параметри - Опция с която се определя допълнителен параметър към програмата за изпращане.

За да може тази функция да работи PHP изисква инсталирана и работеща e-mail система. Поведението на функцията се определя от заданията в файла php.ini. Опции за конфигуриране на мейла:


НаименованиеНачалноОписаниеСмяна
SMTP "localhost" Само за Windows: Името на DNS или IP адрес на SMTP сървъра PHP_INI_ALL
smtp_port "25" Само за Windows: Номер на SMTP порта. Използва се след PHP 4.3 PHP_INI_ALL
sendmail_from NULL Само за Windows: Определя адресът "from", който ще се използва от PHP PHP_INI_ALL
sendmail_path NULL Само за система Unix: Определя къде може да се намери програмата за изпращане на мейла(обикновено /usr/sbin/sendmail or /usr/lib/sendmail) PHP_INI_SYSTEM

Долните два примера можете да реализирате само на реален сървър. Най-простият начин да се изпрати мейл чрез PHP е изпращане на текстово съобщение. В долният пример първо се декларират променливите ($to, $subject, $message, $from, $headers), които след това се използват в функцията mail() за да се изпрати мейла:


    <?php
$to = "dimarini@ abv.bg";
$subject = "Пробен мейл";
$message = "Това е пробно съобщение.";
$from = "yourmail@mail.com";
$headers = "От: $from";
mail($to,$subject,$message,$headers);
echo "Съобщението е изпратено";
?>

PHP форма за изпращане на мейл
С помощта на PHP можете да създадете форма за обратна връзка. В примера е показано изпращане на съобщение към определен e-mail адрес:
    <html>
<body>

<?php

function spamcheck($field)
{
//filter_var() прочиства мейл адреса с използването на FILTER_SANITIZE_EMAIL
$field=filter_var($field, FILTER_SANITIZE_EMAIL);
//filter_var() узаконява мейл адреса с езползването на FILTER_VALIDATE_EMAIL
if(filter_var($field, FILTER_VALIDATE_EMAIL))
{
return TRUE;
}
else
{
return FALSE;
}
}

if (isset($_REQUEST['email']))
//ако "email" е попълнен съобщението се изпраща
{
//изпращане на мейла
$email = $_REQUEST['email'] ;
$subject = $_REQUEST['subject'] ;
$message = $_REQUEST['message'] ;
mail( "yourmail@mail.com", "Subject: $subject",
$message, "From: $email" );
echo "Благодаря, че използвахте формата за контакт";
}

else
//ако "email" не е попълнен показва формата
{
echo "<form method='post' action='mailform.php'>
Email: <input name='email' type='text' /><br />
Предмет: <input name='subject' type='text' /><br />
Съобщение:<br />
<textarea name='message' rows='15' cols='40'>
</textarea><br />
<input type='submit' value='Изпрати'/>
</form>";
}
?>

</body>
</html>