Отправка почты через google средствами PHP

Наконец меня достало использование PHP'шного mail() и постоянного выковыривания писем из спама и я таки решил решить вопрос раз и навсегда - создать ящик на гугле и через него рассылать себе формы.

Чего для этого нужно:

  • PEAR Mail
  • PEAR Net_SMTP
  • openssl (т.к. гугл plain auth не использует)
  • настроить PHP

 

Поскольку для отладки использую виндовую машину, то пришлось слегка пошаманить дабы это всё завелось:

 

А вот код, который рассылает почту:

function fnSendMail($sTo,$sSubject,$sBody){    //Послать почту
require_once('Mail.php');
$sFrom='Varvashenia CMS ';

$aHeaders=array(
'From'=>$sFrom,
'To'=>$sTo,
'Subject'=>'=?UTF-8?B?'.base64_encode($sSubject).'?=',
'Mime-Version'=>'1.0',
'Content-Type'=>'text/html; charset=utf-8'
);
$smtp=Mail::factory(
'smtp',
array (
'host'=>'ssl://smtp.gmail.com',
'port'=>'465',
'auth'=>true,
'username'=>'YOUR_LOGIN@varvashenia.ru',
'password'=>'YOUR_PASSWORD'
)
);

$mail=$smtp->send($sTo,$aHeaders,$sBody);
return !(PEAR::isError($mail));
}
?>

Раскрашивание кода упёрто тутачки.

PS: В качестве бонуса все формы, кроме положения во входящие в ящик-назначение, ложатся ещё и в отправленные в ящик-рассыльщик :)

Из минусов - публикация пароля открытым текстом на серваке.

Тэги:

Gmail Google Mail Mail() PHP SSL Почта
RSSAdd to Google

Обсуждение:

  • Автор: (Анонимус)
  • Тема: Компрессор
  • Админ. Хотелось бы поговорить относительно рекламы .Отпишите ваши условия на e-mail. Зарнее благодарен.

  • Отправлено:
  • Автор: (Анонимус)
  • Тема: Реклама компрессоров
  • А e-mail'а в письме и не было :)
    Условия простые: пишете тематическую статью с парой-тройкой ссылок на себя и я её размещаю. Скорее всего просто так.

    НО! Статья должна быть полезной как минимум для моих любимых посетителей. Плюс должна понравиться мне и не сильно выбиваться из всего, чего на сайте понаписано.

    PS: Для приватных контактов можно и нужно использовать форму обратной связи.

  • Отправлено:
  • Автор: (Анонимус)
  • Тема: Отправка почты
  • Начал делать все по инструкции. При установки openssl возникли первые проблемы: "подкрутил php.ini (extension=php_openssl.dll)" и апатч не запускался, ругался на то, что не та версия сборки. Нашел нужную ему версию, затем он выдал следующее: "Module 'openssl' already loaded" и не запустился. Из чего я сделал вывод, что модуль уже загружен и убрал подключение из php.ini. И в итоге письмо никуда не отправилось (((

    Вопросы:
    1. что делать с этим openssl ?
    2. логин и пароль можно вбивать от gmail? а если у меня в гугле организована почта моего домена то как быть?

  • Отправлено:
  • Автор: Dmitrii Varvashenia
  • Тема: Отправка почты
  • 1. Скорее всего делать уже ничего не нужно - очень похоже что модуль уже вбит гвоздями в вашу версию php (или запущен каким другим образом).
    2. в моём коде как раз показана ситуация для домена, почта которого живёт на гугле - просто нужно заменить YOUR_LOGIN@varvashenia.ru на ваш e-mail и YOUR_PASSWORD на свой пароль от этого мыла.
    PS: У Mail вроде был какой-то режим дебагинга - гляньте в исходниках
  • Отправлено:
  • Автор: (Анонимус)
  • Тема: Все работает !!!
  • Почта отправляется нормально, но хочу написать ряд нюансов, которые не описаны здесь:

    1. при установки модуля PHP Net_SMTP надо так же ставить зависимые модули (Dependencies for Net_SMTP): Net_Socket и Auth_SASL

    2. Строку кода $sFrom='Varvashenia CMS '; надо менять, я заменил значение 'Varvashenia CMS' на свой емайл.

    а так все отлично, большое спасибо !!!

  • Отправлено:
  • Автор: (Анонимус)
  • Тема: Pear и зависимости
  • А еще можно делать по мануалу, чтобы всё само
    pear install Net_SMTP --alldeps
  • Отправлено:
  • Автор: Dmitrii Varvashenia
  • Тема: Pear и зависимости
  • Кто-ж читает мануалы :)
    Спасибо - полезный ключик - буду знать.
  • Отправлено:

Как вам материальчик? *



















Тема:

Мысль:

Как звать-то:

Почта:

PS: Комментарии публикуются только после проверки модератором.

PPS: E-mail'ы не публикуются.

* обязательные поля