Вызов системы почты через PHP
В этом учебном пособии вы познакомитесь с параметрами BlueSMTPMail() и BlueFormSend(), настроите внутреннюю или внешнюю рассылку и узнаете, как обрабатывать вложения, HTML-содержимое и журналы рассылки.
Цель учебного пособия
Примечание: Этот учебник ориентирован на разработчиков и показывает, как встроенная почтовая система CMS bluetronix может быть вызвана непосредственно через PHP.
CMS bluetronix предоставляет центральные функции PHP для отправки электронной почты.
Таким образом, соединения SMTP, почтовые аккаунты и основные функции отправки не нужно будет заново программировать для каждого собственного скрипта PHP.
Для прямой отправки электронной почты и рассылки новостей доступна следующая функция:
BlueSMTPMail($MailType,$MailAccount,$SMTPType,$From,$To,$NewsletterTo,$Subject,$TextContent,$HTMLContent,$Attachments,$EmbedImages,$MailPlaceholderReplacement,$FormEntry);
Для отправки форм электронной почты также доступна следующая функция:
BlueFormSend($SMTPType,$SendMail,$SendSubject,$CopyToCustomer,$TextToCustomer,$FormArchive,$FormID,$SendTo);
BlueSMTPMail()
С помощью BlueSMTPMail() можно отправлять обычные электронные письма и рассылки через центральную почтовую систему CMS bluetronix.
Вызов функции выглядит следующим образом:
BlueSMTPMail(
$MailType,
$MailAccount,
$SMTPType,
$From,
$To,
$NewsletterTo,
$Subject,
$TextContent,
$HTMLContent,
$Attachments,
$EmbedImages,
$MailPlaceholderReplacement,
$FormEntry
);
$MailType
Определяет, какой тип электронной почты должен быть отправлен.
Допустимые значения:
Mail
Newsletter
Пример:
$MailType = "Mail";
или:
$MailType = "Newsletter";
$MailAccount
$MailAccount определяет почтовый аккаунт, настройки SMTP которого будут использованы.
С помощью этого значения загружаются соответствующие данные конфигурации SMTP из таблиц базы данных CMS.
Выбор конфигурации также зависит от $SMTPType.
$SMTPType
Определяет, будет ли использоваться внутренний или внешний почтовый аккаунт.
Допустимые значения:
Intern
Extern
Внутренний
При:
$SMTPType = "Intern";
используется почтовый аккаунт, который был настроен непосредственно в CMS bluetronix.
Аккаунты находятся по адресу:
Email → Accounts
Адрес отправителя, используемый в $From, должен быть там как аккаунт.
Внешний
При:
$SMTPType = "Extern";
используются внешние данные для доступа к SMTP.
Они управляются в CMS по адресу:
Email → Server - Extern
Адрес отправителя, используемый в $From, должен быть там должным образом настроен.
Адрес отправителя, указанный в $From, должен быть соответствующим образом настроен.
$From
Содержит адрес электронной почты отправителя.
Пример:
$From = "info@example.com";
Адрес электронной почты должен соответствовать выбранной SMTP-конфигурации.
$To
Содержит адрес электронной почты получателя обычного письма.
Пример:
$To = "customer@example.com";
При обычной отправке письма эта переменная используется как получатель.
$NewsletterTo
$NewsletterTo используется при отправке информационных рассылок.
Переменная содержит несколько адресов электронной почты в виде текста. Каждый адрес отделен переносом строки.
Пример:
$NewsletterTo = "customer1@example.com\ncustomer2@example.com\ncustomer3@example.com";
$Subject
Содержит тему письма.
Пример:
$Subject = "Welcome to our website";
$TextContent
Содержит чистый текст письма.
Эта часть может использоваться, например, почтовыми программами, которые не отображают HTML-письма.
Пример:
$TextContent = "Thank you for your request.";
$HTMLContent
Содержит HTML-часть письма.
Пример:
$HTMLContent = "<h1>Thank you</h1><p>Thank you for your request.</p>";
С ее помощью можно отправлять форматированные письма с заголовками, текстами, ссылками, изображениями и другими HTML-элементами.
$Attachments
С помощью $Attachments можно прикреплять файлы к письму.
Файлы указываются по их пути внутри веб-сайта.
Пример:
$Attachments = "/bx_doc/Intro.pdf";
При наличии нескольких вложений отдельные пути к файлам отделяются переносом строки.
Пример:
$Attachments = "/bx_doc/Intro.pdf\n/bx_doc/PriceList.pdf";
$EmbedImages
С помощью $EmbedImages можно указать, следует ли встраивать изображения прямо в письмо.
Пример:
$EmbedImages = "ja";
При включенной опции изображения, используемые в HTML-письме, интегрируются непосредственно в письмо и не загружаются только через внешние URL.
Таким образом, изображения могут быть доступны получателю непосредственно в письме, не требуя предварительной загрузки с веб-сервера.
$MailPlaceholderReplacement
С помощью $MailPlaceholderReplacement можно заменять заполнители внутри:
$TextContent
$HTMLContent
индивидуальными значениями.
Принцип таков:
Search
↓
Replace
Таким образом, можно создавать персонализированный контент внутри письма.
Типичные варианты использования:
- Name des Empfängers
- Kundennummer
- Bestellnummer
- individuelle Links
- weitere dynamische Inhalte
$FormEntry
С помощью $FormEntry можно указать, следует ли дополнительно сохранять рассылку в архиве форм.
При:
$FormEntry = "JA";
дополнительно добавляется запись в таблице базы данных:
00_form
сохранено.
Это позволяет документировать отправку одновременно как запись формы и архив.
Пример: отправка обычного письма
Следующий пример отправляет стандартное HTML- и текстовое письмо через внутренний почтовый аккаунт.
$MailType = "Mail";
$MailAccount = "info@example.com";
$SMTPType = "Intern";
$From = "info@example.com";
$To = "customer@example.com";
$NewsletterTo = "";
$Subject = "Your request";
$TextContent = "Thank you for your request.";
$HTMLContent = "<h1>Thank you</h1><p>Thank you for your request.</p>";
$Attachments = "/bx_doc/Intro.pdf";
$EmbedImages = "ja";
$MailPlaceholderReplacement = "";
$FormEntry = "NEIN";
BlueSMTPMail($MailType,$MailAccount,$SMTPType,$From,$To,$NewsletterTo,$Subject,$TextContent,$HTMLContent,$Attachments,$EmbedImages,$MailPlaceholderReplacement,$FormEntry);
Упрощенная последовательность действий выглядит так:
PHP
↓
BlueSMTPMail()
↓
internen Mail-Account laden
↓
SMTP-Verbindung verwenden
↓
E-Mail erzeugen
↓
E-Mail versenden
↓
MailCache-Eintrag erzeugen
Пример: отправка информационного бюллетеня
Для рассылки новостей будет установлен $MailType на:
Newsletter
установлено.
Получатели затем передаются через $NewsletterTo.
$MailType = "Newsletter";
$MailAccount = "newsletter@example.com";
$SMTPType = "Intern";
$From = "newsletter@example.com";
$To = "";
$NewsletterTo = "customer1@example.com\ncustomer2@example.com\ncustomer3@example.com";
$Subject = "Our latest news";
$TextContent = "Discover our latest news and products.";
$HTMLContent = "<h1>Our latest news</h1><p>Discover our latest news and products.</p>";
$Attachments = "";
$EmbedImages = "ja";
$MailPlaceholderReplacement = "";
$FormEntry = "NEIN";
BlueSMTPMail($MailType,$MailAccount,$SMTPType,$From,$To,$NewsletterTo,$Subject,$TextContent,$HTMLContent,$Attachments,$EmbedImages,$MailPlaceholderReplacement,$FormEntry);
Отдельные получатели рассылки будут разделены в $NewsletterTo с помощью переносов строк.
Использовать внешнее SMTP-соединение
Если необходимо использовать внешний почтовый сервер, то:
$SMTPType = "Extern";
установлено.
Данные для доступа к SMTP должны быть заранее настроены по адресу:
Email → Server - Extern
.
Пример:
$SMTPType = "Extern";
$From = "mail@external-domain.com";
$MailAccount = "mail@external-domain.com";
BlueFormSend()
В дополнение к прямой отправке почты доступна функция:
BlueFormSend($SMTPType,$SendMail,$SendSubject,$CopyToCustomer,$TextToCustomer,$FormArchive,$FormID,$SendTo);
.
Эта функция специально предназначена для отправки электронной почты в сочетании с формами CMS.
Переменные уже полностью написаны на английском языке.
Параметры BlueFormSend()
| Переменная | Использование |
|---|---|
$SMTPType |
Выбор внутренней или внешней отправки SMTP |
$SendMail |
Управляет отправкой почты формы |
$SendSubject |
Тема письма формы |
$CopyToCustomer |
Определяет, получит ли клиент копию |
$TextToCustomer |
Текст для сообщения клиенту |
$FormArchive |
Управляет архивированием формы |
$FormID |
ID соответствующей формы |
$SendTo |
Получатель электронной почты формы |
MailCache
Каждый вызов BlueSMTPMail() дополнительно создает запись в таблице базы данных:
00_MailCache
С помощью этой таблицы можно контролировать статус отправки электронной почты.
Например, можно проверить, успешно ли была обработана или отправлена электронная почта.
Записи MailCache используются для:
1 Woche
сохранено.
Типичный процесс отправки письма
PHP-Skript
↓
BlueSMTPMail()
↓
MailType prüfen
↓
MailAccount auswählen
↓
SMTPType prüfen
↓
SMTP-Konfiguration laden
↓
Empfänger bestimmen
↓
Text- und HTML-Inhalt erstellen
↓
Platzhalter ersetzen
↓
Anhänge hinzufügen
↓
Bilder gegebenenfalls einbetten
↓
E-Mail versenden
↓
00_MailCache aktualisieren
↓
optional 00_form speichern
Обзор параметров BlueSMTPMail
| Переменная | Значение |
|---|---|
$MailType |
Почта или рассылка |
$MailAccount |
Используемый почтовый аккаунт |
$SMTPType |
Внутренний или Внешний |
$From |
Адрес отправителя |
$To |
Получатель обычной электронной почты |
$NewsletterTo |
Получатели рассылки, разделенные переносами строк |
$Subject |
Тема письма |
$TextContent |
Часть текста письма |
$HTMLContent |
HTML-часть письма |
$Attachments |
Пути к附件ам |
$EmbedImages |
Встраивание изображений непосредственно в письмо |
$MailPlaceholderReplacement |
Замещение плейсхолдеров в содержимом письма |
$FormEntry |
Создание необязательной записи в 00_form |
Zusammenfassung
Центральная почтовая система CMS bluetronix может быть вызвана непосредственно из собственного PHP-кода.
Für normalen E-Mail- und Newsletter-Versand wird verwendet:
BlueSMTPMail($MailType,$MailAccount,$SMTPType,$From,$To,$NewsletterTo,$Subject,$TextContent,$HTMLContent,$Attachments,$EmbedImages,$MailPlaceholderReplacement,$FormEntry);
Для форм CMS дополнительно доступно:
BlueFormSend($SMTPType,$SendMail,$SendSubject,$CopyToCustomer,$TextToCustomer,$FormArchive,$FormID,$SendTo);
Die SMTP-Konfiguration kann entweder über:
Внутренний
→ Email → Аккаунты
или:
Extern
→ Email → Server - Extern
erfolgen.
Каждая отправка почты дополнительно проводится через:
00_MailCache
protokolliert. Die entsprechenden Cache-Einträge bleiben eine Woche erhalten.
Таким образом, разработчики могут использовать уже существующую почтовую систему CMS bluetronix непосредственно из своих PHP-скриптов, не реализуя самостоятельно всю логику SMTP.
Часто задаваемые вопросы
что часто спрашивают клиенты
Какие функции предоставляет центральная почтовая система для PHP?
Для обычных электронных писем и информационных бюллетеней используйте BlueSMTPMail(). Для отправки в связке с формами CMS дополнительно доступна BlueFormSend().
Где найти внутренние электронные почтовые аккаунты?
Внутренние почтовые аккаунты настраиваются в Email → Аккаунты. Для их отправки установите $SMTPType на Внутренний. Адрес отправителя должен принадлежать созданному аккаунту.
Как использовать внешний SMTP-сервер?
Настройте учетные данные в Email → Сервер - Внешний и используйте $SMTPType = "Внешний";. Адрес отправителя должен соответствовать выбранной конфигурации.
В чем разница между письмом и информационным бюллетенем?
С помощью $MailType = "Mail"; отправляется обычное электронное письмо, адресат которого указан в $To. Для рассылки новостей установи $MailType = "Newsletter"; и передай адреса получателей через $NewsletterTo.
Как передать несколько адресатов для рассылки?
Введите адреса в $NewsletterTo и разделите каждый адрес электронной почты переводом строки.
Могу ли я отправить текст и HTML в одном и том же электронном письме?
Да. Обычный текст размещается в $TextContent, в то время как отформатированное HTML-сообщение передается через $HTMLContent.
Как я могу прикрепить файлы к электронному письму?
С помощью $Attachments ты передаешь пути к файлам на веб-сайте. Для нескольких вложений пути разделяются переносами строк.
Как я могу встроить изображения прямо в электронное письмо?
Шаблон использует для этого $EmbedImages = "да";. Это позволяет встраивать изображения, используемые в HTML-сообщении, напрямую в соответствии с описанной функцией CMS.
Для чего используется MailPlaceholderReplacement?
С его помощью ты можешь заменять заполнитель в текстовом и HTML-содержимом на индивидуальные значения, например, для имен, номеров заказов или личных ссылок. Шаблон описывает принцип поиска и замены, но не конкретный формат передачи.
Как я архивирую отправку дополнительно как запись формы?
Установи значение $FormEntry = "ДА"; в BlueSMTPMail(). По шаблону будет дополнительно сохранена запись в 00_form.
Где я могу проверить статус отправки?
Шаблон описывает для этого таблицу 00_MailCache. Записи о доставке, созданные там, будут храниться одну неделю. Запись о обработке сама по себе не является дополнительным доказательством доставки получателю.
Когда я использую BlueFormSend()?
BlueFormSend() предназначен для отправки электронной почты с использованием форм CMS. К параметрам относятся, среди прочего, управление отправкой, тема, копия для клиента, архив форм и ID формы.