Как отправить письмо средствами php?

Пример демонстрирует отправку почты с помощью стандартной функции mail, полученный данные от пользователя обрабатываются.

функция отправки:
code: #php
  1. <?php
  2. function send_mail($from, $to, $subject, $text, $headers="")
  3. {
  4.     if (strtolower(substr(PHP_OS, 0, 3)) === 'win')
  5.         $mail_sep = "\r\n";
  6.     else
  7.         $mail_sep = "\n";
  8.  
  9.     function _rsc($s)
  10.     {
  11.         $s = str_replace("\n", '', $s);
  12.         $s = str_replace("\r", '', $s);
  13.         return $s;
  14.     }
  15.  
  16.     $h = '';
  17.     if (is_array($headers))
  18.     {
  19.         foreach($headers as $k=>$v)
  20.             $h = _rsc($k).': '._rsc($v).$mail_sep;
  21.         if ($h != '') {
  22.             $h = substr($h, 0, strlen($h) - strlen($mail_sep));
  23.             $h = $mail_sep.$h;
  24.         }
  25.     }
  26.  
  27.     $from = _rsc($from);
  28.     $to = _rsc($to);
  29.     $subject = _rsc($subject);
  30.     mail($to, $subject, $text, 'From: '.$from.$h);
  31. }
  32. ?>
страница отправки:
code: #html
  1. <?php $site_admin = 'your@email.adress';
  2.  
  3. // function ae_send_mail (see code above) is pasted here
  4.  
  5. if (($_SERVER['REQUEST_METHOD'] == 'POST') &&
  6.    isset($_POST['subject']) && isset($_POST['text']) &&
  7.    isset($_POST['from1']) && isset($_POST['from2']))
  8.    {
  9.        $from = $_POST['from1'].' <'.$_POST['from2'].'>';
  10.         // nice RFC 2822 From field
  11.  
  12.         ae_send_mail($from, $site_admin, $_POST['subject'], $_POST['text'],
  13.         array('X-Mailer'=>'PHP script at '.$_SERVER['HTTP_HOST']));
  14.         $mail_send = true;
  15.     }
  16. ?>
  17. <html><head><title>Send us mail</title>
  18. </head><body>
  19. <?php
  20. if (isset($mail_send)) {
  21.    echo '<h1>Form has been sent, thank you</h1>';
  22. }
  23. else {
  24. ?>
  25. <form action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post">
  26. Your Name: <input type="text" name="from1" size="30" /><br />
  27. Your Email: <input type="text" name="from2" size="30" /><br />
  28. Subject: <input type="text" name="subject" size="30" /><br />
  29. Text: <br />
  30. <textarea rows="5" cols="40" name="text"></textarea>
  31. <input type="submit" value="send" />
  32. </form>
  33. <?php } ?>
  34. </body></html>
Поделиться:

Похожие статьи: