Сегодня, когда я отправляю основные электронные письма, я использую класс «Почта», который является пользовательской оболочкой с помощью SwiftMailer, например:
<?php Mail::create('Message title') ->template('Template string or view path. Global variable "var" is "{var}". Current user is {username}.') ->tags(array('var' => 'value 1')) ->from('contact@mydomain.com') ->to('mail@example.com', array('username' => 'Boris')) ->transport(Mail::SMTP) ->send();
Он отлично подходит для основных электронных писем, но не может использоваться для отправки бюллетеней по нескольким причинам:
Поэтому я подумал о возможности централизовать более сложное управление электронной почтой. Я сделал схему:
Я не хочу, чтобы удаленный сервер сохранял любую контактную информацию , только кампании, получатели и статистику, например, следующую диаграмму:
Поле « данные » таблицы « Получатель » предназначено для хранения пользовательской структуры данных, которая будет отправлена обратно, когда API будет запрашивать информацию о получателе. Например :
<?php $result = NewsletterAPI::getRecipientsViewReport($campaignRef); // // Will contain something like : // Array // ( // [recipients] => Array // ( // [0] => Array // ( // [email] => toto@gmail.com // [opened] => 3 // [last_open_date] => '2015-02-02 12:32:23', // [data] => Array // ( // [id] => 123 // ) // ) // [1] => Array // ( // [email] => tata@hotmail.com // [opened] => 0 // [last_open_date] => null, // [data] => Array // ( // [id] => 17 // ) // ) // ) // )
Далекий сервер не заботится ни о чем другом, кроме как отправлять электронные письма и получать статистику по ним. Независимо от того, какие объекты находятся за адресами электронной почты или как управляются пользователями.
Это не позволяет пользователю получить доступ к данным, которые у него отсутствуют, и запретить пользователям не администраторам доступ к методам API-интерфейса администратора (например, создавать пользователей).
Таким образом, очень легко интегрироваться на любом веб-сайте, мне просто нужно сохранить ключ api учетной записи, в которой я хочу отправить почту (например, добавить поле « mailing_api_key » в моем « User »).
Прежде всего, что вы думаете об этой архитектуре?
В реальном мире количество писем не должно быть огромным (несколько тысяч в неделю), но я бы хотел, чтобы система была минимальной надежной.
Кроме того, есть три основные проблемы, о которых я могу думать:
Поэтому я провел несколько исследований, чтобы найти специализированные службы, которые могут справиться с этим, например:
и т. д. Но все они хотят управлять контактами и множеством вещей, на которые мне не все равно.
Мне просто нужен сервис без интерфейса , который делает что-то близкое к тому, что я описал выше:
Большое вам спасибо, если вы все прочитали, я надеюсь найти решение.
С уважением.
Большинство (крупных) компаний просто используют сторонний API, такой как mailchimp. Просто подпишитесь на несколько информационных бюллетеней компании и посмотрите на заголовок электронной почты.
Существует причина, если компании с бюджетом более миллиона будут использовать компании, занимающиеся информационными бюллетенями третьих сторон. У вас будет много проблем с фильтрами спама и проблемами, которые вы еще не знаете … в разных странах существуют разные законы. (например: в германии вы должны указать ссылку для отмены подписки в электронном письме).
эти сторонние информационные компании предоставляют api, которые вы можете интегрировать в php.