Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Отправка писем через общий компонент #9

Closed
mikanoz opened this issue May 5, 2014 · 4 comments
Closed
Assignees

Comments

@mikanoz
Copy link
Contributor

mikanoz commented May 5, 2014

Сейчас с сайта может быть отправлено одно письмо (заявка на стажировку). Возможно, скоро будет два (см. задачу #8 - приветственное письмо автору заявки на стажировку). Потом еще, и еще... Хочется чтобы отправка писем была собрана в одном месте. Нужно сделать класс-"компонент" (директория для классов-компонентов - FintechFab/Components), куда перенести отправку писем. Компонент должен работать примерно так:

$mailSender = new MailSender();
$mailSender->setParams(array(
  'to' => получатель,
  'name' => имя получателя,
));
$mailSender->doVanguardOrderAuthor();

что означает отправку приветственного письма автору заявки. Т.е. метод doVanguardOrderAuthor отправляет вполне конкретное письмо.

@k17-sergey
Copy link
Contributor

Непонятно, зачем здесь "setParams"?
Имя получателя письма сохраняется в памяти, и ему можно посылать несколько писем; то есть не меняя заданные параметры посылаем разные письма... одному и тому же адресату.

По-моему, если такое не нужно, то должно быть так:

$mailSender->doVanguardOrderAuthor(array(
  'to' => получатель,
  'name' => имя получателя,
));

Сейчас почту отправляет функция "postOrder()". Она анализирует результат отправки, и определяет текст всплывающего сообщения.
Пожалуй, содержимое этой функции нужно перенести в объект MailSender, частично или полностью.
Наверное, надо и текст всплывающего сообщения создавать в этом объекте, типа:
$mailSender.titleMessage
$mailSender.userMessage

Насколько я понял, нужны функции:

$mailSender->doVanguardOrder();
$mailSender->doVanguardOrderAuthor();

@mikanoz
Copy link
Contributor Author

mikanoz commented May 15, 2014

Все ок, мысли правильные, только

"надо и текст всплывающего сообщения создавать в этом объекте, типа:"

не согласен, т.к. сообщения пользователю на сайте это одно, а отправка писем - другое. Не стоит смешивать совсем разные штуки. Отправляем письмо одним объектом, получаем от него ответ, дальше уже "работаем с пользователем", если вообще посчитаем это нужным.

Насколько я понял, нужны функции:

Да.

k17-sergey added a commit to k17-sergey/fintech-fab.ru that referenced this issue May 17, 2014
…chFab/Components/MailSender.php app/controllers/Site/VanguardController.php
@k17-sergey
Copy link
Contributor

В принципе сделано.

Для задачи #8 нужно только заполнить функцию

doVanguardOrderAuthor();

она расположена в

    app/FintechFab/Components/MailSender.php

mikanoz added a commit that referenced this issue May 19, 2014
@mikanoz
Copy link
Contributor Author

mikanoz commented Jul 23, 2014

Слито в мастер

@mikanoz mikanoz closed this as completed Jul 23, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants