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

On 02.04.2014, in FreeBSD, Linux, by Passenger

Готовые скрипты для отправки писем из PHP

Вариант №1

<?php
include("Mail.php");
/* mail setup recipients, subject etc */
$recipients = "feedback@yourdot.com";
$headers["From"] = "user@somewhere.com";
$headers["To"] = "feedback@yourdot.com";
$headers["Subject"] = "User feedback";
$mailmsg = "Hello, This is a test.";
/* SMTP server name, port, user/passwd */
$smtpinfo["host"] = "smtp.mycorp.com";
$smtpinfo["port"] = "25";
$smtpinfo["auth"] = true;
$smtpinfo["username"] = "smtpusername";
$smtpinfo["password"] = "smtpPassword";
/* Create the mail object using the Mail::factory method */
$mail_object =& Mail::factory("smtp", $smtpinfo);
/* Ok send mail */
$mail_object->send($recipients, $headers, $mailmsg);
?>

Вариант №2

require_once 'Net/SMTP.php';

/**
 * Отпраляем почту через SMTP-сервер GMail (пользователь: user@gmail.com).
 *
 * @see CEvent::HandleEvent()
 * @see bxmail()
 *
 * @param string $to Адрес получателя.
 * @param string $subject Тема.
 * @param string $message Текст сообщения.
 * @param string $additionalHeaders Дополнительные заголовки передаются Битриксом почти всегда ("FROM" передаётся здесь).
 *
 * @return bool
 */

function custom_mail($to, $subject, $message, $additionalHeaders = '')
{
   /*
    * Настройки можно (нужно) вынести в админку, но это уже домашнее задание :)
    */

   $smtpServerHost         = 'ssl://smtp.gmail.com';
   $smtpServerHostPort      = 465;
   $smtpServerUser         = 'user@gmail.com';
   $smtpServerUserPassword   = 'password';

   if (!($smtp = new Net_SMTP($smtpServerHost, $smtpServerHostPort))) {
      return false;
   }
   if (PEAR::isError($e = $smtp->connect())) {
      return false;
   }
   if (PEAR::isError($e = $smtp->auth($smtpServerUser, $smtpServerUserPassword))) {
      return false;
   }

   preg_match('/From: (.+)\n/i', $additionalHeaders, $matches);
   list(, $from) = $matches;

   $smtp->mailFrom($from);
   $smtp->rcptTo($to);

   /*
    * Получаем идентификатор конца строки у Битрикса.
    */

   $eol = CAllEvent::GetMailEOL();

   $additionalHeaders .= $eol . 'Subject: ' . $subject;

   if (PEAR::isError($e = $smtp->data($additionalHeaders . "\r\n\r\n" . $message))) {
      return false;
   }

   $smtp->disconnect();

   return true;
}

P.S. Не забываем про кодировки и content-type

Tagged with:  

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>