Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Mailgun
Code

Альтернативы для управления списками email рассылок с помощью PHP: использование API Mailgun

by
Difficulty:IntermediateLength:MediumLanguages:

Russian (Pусский) translation by Ilya Nikov (you can also view the original English article)

Final product image
What You'll Be Creating

За последние пару лет я столкнулся с разными разочарованиями как с приложениями с открытым исходным кодом, так и с платными облачными провайдерами. В этом уроке я расскажу вам о моем решении использовать Mailgun.com, которым я успешно пользуюсь сейчас уже два года.

OpenPL PHPList всегда был довольно сложным, и я потерял интерес к ним, когда они начали перестраивать свой пользовательский интерфейс в направлениях, которые казались более сложными, чем раньше. В середине моей инициативной кампании по сбору подписей в Сиэтле Mailchimp отключил мой список адресов электронной почты, заявив, что я не получил должным образом разрешения от членов этого списка, даже если каждый из них лично предоставил нашей кампании свою электронную почту. Затем я открыл для себя Mailgun и решил создать собственное решение, которое я использовал каждый день.

Mailgun - это облачный SaaS для электронной почты, такой как например SendGrid. Он фактически бесплатен до 10 000 писем в месяц. Mailgun невероятно мощный и предлагает хорошо документированный API на самых разных языках. Он обеспечивает как возможности отправки, так и приема, последние из которых могут быть довольно сложными для разработки с нуля. Хотя Mailgun не предоставляет шаблоны для больших HTML рассылок, он предоставляет платформу, на которой вы можете построить что-то свое.

Mailgun Home Page

Я использую службы списков Mailgun для общения с друзьями и общения с моими социальными сообществами, а также для бизнеса и маркетинга. Для большинства моих потребностей простые электронные письма с поддержкой HTML хорошо подходят.

В этом уроке я расскажу о ListApp, апплете, который основан на API-интерфейсе Mailgun. А в следующем уроке я расскажу вам, как создать собственную схему списка рассылки на нативном PHP и MySQL. Каждый подход имеет свои преимущества.

Если вы в первую очередь хотите транслировать и хотите использовать собственный веб-пользовательский интерфейс Mailgun для управления списком, ListApp может быть для вас отличным вариантом. Вот пример веб-интерфейса Mailgun для управления списками:

An example of Mailguns web-based user interface

Используя ListApp, главная копия вашего списка поддерживается в облаке в Mailgun и синхронизируется локально через API при установке ListApp.

Если вы захотите создать списки групп электронной почты или хотите получить более тонкий контроль над своими адресами электронной почты и адресатом, то вам может понадобиться узнать, как создавать функции списка. В следующем уроке мы по-прежнему будем полагаться на движок Mailgun и API, но мы будем управлять списками в приложении, а не с помощью API-интерфейса Mailgun. Это также позволяет избежать сложности синхронизации.

Открытый список ListApp

ListApp предоставляет простой веб-интерфейс для общих сценариев, которые вы можете использовать с функциями рассылки Mailgun:

  • синхронизация ваших списков и элементов списка из облака Mailgun
  • создание, обновление и удаление списков
  • импорт новых участников в список
  • отправка сообщений в списки
Open Source ListApp Home Page for Mailgun

Вы можете установить ListApp в любой системе на основе LAMP. Я опубликовал свое общее руководство по установке сервера Ubuntu LAMP для справки. Приложение содержит инструкции по настройке ListApp на сервере Ubuntu с 1 ГБ ОЗУ. Для этого требуются PHP 5.x, MySQL 5.x и библиотеки PEAR и cURL.

ListApp написан в Yii Framework для PHP. Вам не нужно ничего знать о фреймворке Yii для запуска приложения. Если вы предпочитаете не использовать Yii, вы можете использовать компонент Yiigun, используемый в ListApp. Yiigun.php по существу является файлом класса PHP с методами и помощниками для использования SDK Mailing Mailing List.

Mailgun Signup

Вам нужно будет зарегистрироваться для бесплатной (платной) учетной записи Mailgun, чтобы получить ключи API для файла настроек. Если у вас есть платная учетная запись, вам необходимо добавить свои домены и создать настройки DNS для их использования. Если вы используете бесплатную учетную запись, ваш домен будет yourchoice.mailgun.org. Поэтому ваши адреса списка могут быть wildcard@yourchoice.mailgun.org. Ключи API Mailgun будут отображаться на домашней странице панели управления.

The Mailgun Control Panel with API Key

Как использовать API списков Mailgun

Использование API Mailing Mailing List очень простое. Mailgun предоставляет хорошую документацию для Mailing List API , чтобы помочь нам. Вы можете просмотреть, как ListApp использует API Mailgun в нашем компоненте Yiigun.php. ListApp использует SDK Mailgun PHP для взаимодействия с Mailgun.

Инициализация SDK Mailgun PHP

Обязательно следуйте инструкциям по настройке ключей API во время установки. Всякий раз, когда используется класс Yiigun, вызывается конструктор, создавая безопасную инициализацию с помощью API Mailgun:

Создание списка

Вы можете создавать новые списки рассылки, используя параметры меню справа от ListApp. Для каждого списка требуется имя, список адресов электронной почты и описание. Когда вы создаете новый список, ListApp также загружает список и его настройки в Mailgun. Вы также можете обновить свойства для любого списка.

Create a mailing list

Вот как мы создаем новый список:

Вот как мы обновляем свойства списка рассылки:

Open Source ListApp Mailing Lists

Импорт участников в список

Вы можете импортировать новых членов в любой список из ListApp. Для этой функции мы используем библиотеки разбора списка адресов PEAR. Вы можете вставить любой список адресов электронной почты в форме Личное имя <mailbox@domain.com>, разделенные запятыми или новыми строками. ListApp будет добавлять участников локально и загружать их на Mailgun.com.

Import members to a list

Чтобы добавить новых членов списка пачкой, сначала мы создаем строку JSON для загрузки - вот пример кода, который вы можете использовать.

Затем мы вызываем функцию массовой загрузки с помощью этой строки JSON:

Вы также можете добавить отдельных участников в списки, используя элемент меню Add a Member.

Open Source ListApp Membership List

Отправка сообщения

ListApp Send New Message

Вы можете отправить сообщение в любой список, используя меню справа. Мы отправляем исходящее сообщение в Mailgun, как и любое другое сообщение. Адрес $to - это адрес рассылки Mailgun, такой как ourlist@ourdomain.com:

Затем Mailgun управляет доставкой сообщения отдельным получателям.

Здесь вы можете увидеть больше примеров использования API-интерфейса Mailgun.

Вы также можете использовать некоторые из общих переменных получателя Mailgun для включения личных приветствий, таких как Hi %recipient_fname% (см. документацию по шаблонам).

Синхронизация списков и членов списка

Вы также можете управлять своими списками через веб-интерфейс Mailgun. Затем, когда вы открываете ListApp, нажмите кнопку Синхронизировать. Это позволит получить копии всех существующих списков рассылки Mailgun и загрузить всех их членов в локальную базу данных. Это синхронизирует ваш список рассылки с сайтом Mailgun.com. Этот параметр не синхронизируется.

Вот функция fetchLists. Использование Mailgun PHP SDK делает это довольно простым:

Вот как мы получаем участников:

Расширение ListApp

Текущая версия ListApp работает с Mailgun в реальном времени и не имеет обширной обработки ошибок. В долгосрочной перспективе было бы неплохо добавить асинхронные запросы с запросами в очереди.

В дополнение к документации по Mailing List API, которая включает примеры в cURL, Ruby, PHP, Python, Java и C #, вы можете просматривать, извлекать и адаптировать файл Yiigun.php и его функции для своего собственного PHP-приложения или фреймворка.

Если вы не используете Yii, вам нужно будет использовать Composer для установки SDK.

Что вы узнали

Теперь у вас есть апплет, который может создавать и управлять облачными списками через API Mailgun и использовать их, чтобы информировать ваших друзей, коллег и клиентов. Во второй части я покажу вам, как создавать списки адресов электронной почты, используя PHP и MySQL.  Мы по-прежнему будем полагаться на механизм Mailgun и API, но мы будем управлять списками в приложении, а не с API-интерфейсом Mailgun.

Пожалуйста, не стесняйтесь оставлять свои вопросы и комментарии ниже. Вы также можете связаться со мной в Twitter @reifman или отправить мне электронное письмо. Подпишитесь на мою страницу инструктора Tuts +, чтобы увидеть будущие статьи этой серии.

Ссылки по теме

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.