DbHelp.ru
Маленький Yii блог
Комментарии
Гость: Смотреть фильмы без регитрации в хорошем качестве ...
Гость: payday advance payday advance cash advance cash advance
Гость: Приветствую Вас, дорогие друзья! Рекомендую интересн...
Гость: Имя предприятия изготовителя и потребителя;Данный слу...
Гость: wh0cd2111231 [url=http://tricor911.us.org/]tricor[/url] [url=http://mobic911.us.com/]mobic[/url] [ur...



Сервер Ultima Online - Forest Wars (от создателя данного блога)

Подключаем SwiftMailer к Yii

Рубрика: Мелкие заметки на тему Yii

Оцените эту статью:

Рейтинг: 0.00 (0)
18 Окт. 2009
Опубликовать в Twitter Написать в Facebook Опубликовать в своем блоге livejournal.com

Yii Framework Blog img http://dbhelp.rulogo Разговор сегодня пойдет про SwiftMailer. Это удобный инструмент для отправки почты из php скрипта. Вы сможете:

 

  1. очень легко и просто прикреплять вложения к письму
  2. посылать сообщения используя SMTP, sendmail, postfix. Поддерживается шифрование паролей
  3. встроенная защита от иньекций в заголовках и тексте письма

вы больше некогда не вспомните про то, что такое функция mail() в php...

---

Сам SwiftMailer может быть установлен в виде пакета на сервер или просто закачен в виде набора php классов. Для простой установки на хост, советовал бы на досуге почитать инструкцию. Список плюсов который я привел - естественно не полный, для более детального изучения инструмента - посмотрите их сайт [англ.]

 

Говорить мы будем про подключение данного инструмента к Yii.

  1. Первым делом скачайте SwiftMailer 4.1
  2. Создайте каталог protected/vendor/swift
  3. Достаньте с архива папку lib, и перенесите её содержимое в protected/vendor/swift

Если бы мы не использовали Yii, то четвертым пунктом был бы запуск следующего кода для проверки:

function sendHtmlMail($from, $to, $subject, $body, $attachments = array()) {
    require_once 'lib/swift_required.php';
 
    $message = Swift_Message::newInstance()
      ->setSubject($subject)
      ->setFrom($from)
      ->setTo($to)
      ->setBody($body, 'text/html');
 
    $transport = Swift_SmtpTransport::newInstance('host', 25)
      ->setUsername('username')
      ->setPassword('password');
 
    $mailer = Swift_Mailer::newInstance($transport);
    return $mailer->send($message);
}
 
var_dump(sendHtmlMail("fromMailAddress", "toMailAddress", "subject", "body"));

Для работы с Yii, нам достаточно изменить строчку:

require_once 'lib/swift_required.php';

на:

spl_autoload_unregister(array('YiiBase','autoload'));
Yii::import('application.vendor.swift.swift_required', true);
spl_autoload_register(array('YiiBase','autoload'));

На этом в принципе теоретическая часть заканчивается. Посмотрите код который я привел выше — и попробуйте на нем составить свои примеры.

 

 



Если хотите опубликовать этот материал у себя - пожалуйста, разместите ссылку на страницу откуда вы его взяли.
Другие yii статьи:

  1. Я знаю что многие люди в связи с плохим пониманием английского языка не сидят на англоязычном форуме по yii ... "Yii Логотипы"

  2. Первым делом здравствуйте! :) Сразу хотел бы вам обьяснить что вы находитесь на странице интернет блога DbHelp, который полностью ... "Шаг 0: Поговорим?"

  3. Эта статья устарела т.к. была написана для yii версии 1.0.х; Если вы используете более новую версию - у вас могут ... "Урок 6 : Регистрация и авторизация. Часть 1"

[guest] Гость

Было сказано: Вторник, 21 Декабрь 2010

А куда вставлять в коде Yii эту функцию sendHtmlMail? В каждый контроллер?

[guest] zolter

Было сказано: Вторник, 21 Декабрь 2010

Есть несколько вариантов:
1. сделать как компонент
2. контроллеры наследовать от какого то своего ABS, который сам уже будет наследоваться от ABS. И вот в этом главном контроллере и пихайте эту функцию

[guest] Гость

Было сказано: Среда, 22 Декабрь 2010

А как оформить в компонент?

[guest] Гость

Было сказано: Четверг, 23 Декабрь 2010

в стандартном yii блоге(там где обратная связь) засунул функцию в
SiteController, в actionContact, который срабатывает после клика по сабмиту в форме обратной связи.


$from = $_POST['ContactForm']['email'];
$to = "****@gmail.com";
$subject = $_POST['ContactForm']['subject'];
$body = $_POST['ContactForm']['body'];
$attachments = array();
$this->sendHtmlMail($from, $to, $subject, $body, $attachments = array());

ниже в SiteController добавил

function sendHtmlMail($from, $to, $subject, $body, $attachments = array()) {
//die('sss');
spl_autoload_unregister(array('YiiBase','autoload'));
Yii::import('application.vendor.swift.swift_required', true);
spl_autoload_register(array('YiiBase','autoload'));

$message = Swift_Message::newInstance()
->setSubject($subject)
->setFrom($from)
->setTo($to)
->setBody($body, 'text/html');

$transport = Swift_SmtpTransport::newInstance('host', 25)
->setUsername('username')
->setPassword('password');

$mailer = Swift_Mailer::newInstance($transport);

return $mailer->send($message);
}


Fatal error: Class 'CException' not found in C:\vhosts\mb\html\framework\YiiBase.php on line 310

не понимаю что такое...

[guest] sape

Было сказано: Среда, 31 Август 2011

Парень, что то мне подсказывает, что ты не содержимое папки, а папку перенес )))

[guest] sape

Было сказано: Среда, 31 Август 2011

хотя если перенести папку, то ерроры + скрипт интересуетсо папкой lib
А если скопировать целиком папку lib и подключить так

Yii::import('application.extensions.swift.lib.swift_required', true);

например, то все замечательно работает

[guest] limion

Было сказано: Суббота, 03 Ноябрь 2012

Наверное стоило бы написать дополнение к http://yiiframework.ru/doc/guide/ru/extension.integration
т.к. тамошний способ подключения в данном случае не сработает.

Спасибо!

[guest] Гость

Было сказано: Вторник, 31 Январь 2017

Хай))
Я пошленькая девочка :)
Услуги вебкам видеочата от пошленькой девочки! Мой скайп: vikavirtxxx или заходите сразу в видеочат: <a href=http://tinyurl.com/vikavirtyxxx>http://tinyurl.com/vikavirtyxxx</a>
Жду вас мальчики!)))

P.S.
вирт секс по веб камере - это круто)))

Услуги вебкам видеочата от пошленькой девочки Учение– полная физическая неспособность мужчины добиться эрекции.Драгоценные Врата.«Космической гармонии мироздания».Это очень изящная поза, которая доставляет массу удовольствия обоим партнерам.партнерши.ТантрыОни страстно занимались любовью и вместе прошли все четыре уровня сексуального экстаза, поднявшись по Пути Освобождения до самого конца. Путем своего служенияНередки случаи, когда во время первого полового контакта у девушек наблюдается судорожное сокращение мышцы, которая находится у входа во влагалище. Это делает введение пениса крайне затруднительным или же вообще невозможным. Такой спазм, именуемый вагинизмом, вызван в первую очередь психологическими причинами. И зачастую это не просто страх перед болью и боязнь дефлорации. Скорее девушка испытывает неуверенность и большие сомнения по поводу того, любит ли ее партнер на самом деле или хочет только секса.ТантрыВишнуЖенщина обхватывает

[guest] Гость

Было сказано: Вторник, 07 Март 2017

<b><a href=https://goo.gl/zml2zI>KANGER SUBOX MINI</a></b>
Kanger SUBOX Mini Starter kit - это новый стартовый набор от лучшего производителя электронных сигарет Kangertech. Он состоит из боксмода KBOX Mini и бака SUBTANK Mini. Несомненно, это один из самых красивых и удобных наборов, который подойдет и новичку, и опытному вейперу.
Корпус из нержавеющей стали

<a href=https://goo.gl/zml2zI><IMG>http://images.vfl.ru/ii/1488222843/1b874739/16266979_m.jpg</IMG></a>

<b><a href=https://goo.gl/zml2zI>Подробнее</a> - https://goo.gl/zml2zI</b>

[guest] Гость

Было сказано: Четверг, 08 Июнь 2017

Hello. <a href=http://ru.iherb.com/New-Products/?rcode=TEY039> nobellarezi livejournal com </a> и крем ночной увлажняющий ночной крем
butter peanut незофарм шампунь отзывы
отзывы формула здоровья
зеленого чая экстракт эвалар
купить пажитник для похудения
отзывы балткотлопроект
<a href=http://ru.iherb.com/Trial-Pricing/?rcode=TEY039> трипхала что это такое </a> и л лизин отзывы

[guest] Гость

Было сказано: Среда, 08 Ноябрь 2017

паронит это
http://megasto.com.ua/catalog/paronit/ - паронит вес
паронит плотность
<a href="http://megasto.com.ua/catalog/paronit/">паронит оптом </a>
hoOzbnu17659 12K

Оставить комментарий


Код:
Имя: