现在下载应用并免费测试10天
货币 选择语言 选择地区

教程的目标

提示:本教程面向开发者,展示如何通过PHP直接调用bluetronix CMS内置的邮件系统。

bluetronix CMS提供了用于发送电子邮件的核心PHP函数。

因此,无需为每个自定义PHP脚本重复编写SMTP连接、邮件账户和基本发送功能。

以下功能可用于直接发送电子邮件和新闻通讯:

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()可以通过bluetronix CMS的中央邮件系统发送普通电子邮件和新闻通讯。

函数调用为:

BlueSMTPMail(
   $MailType,
   $MailAccount,
   $SMTPType,
   $From,
   $To,
   $NewsletterTo,
   $Subject,
   $TextContent,
   $HTMLContent,
   $Attachments,
   $EmbedImages,
   $MailPlaceholderReplacement,
   $FormEntry
);

$MailType

确定要发送的电子邮件类型。

可用值:

Mail
Newsletter

示例:

$MailType = "Mail";

或:

$MailType = "Newsletter";

$MailAccount

$MailAccount指定使用哪个电子邮件账户的SMTP设置。

通过此值,从CMS数据库表中加载相应的SMTP配置数据.

使用哪个配置,还取决于$SMTPType.

$SMTPType

确定是使用内部还是外部电子邮件账户.

可用值:

Intern
Extern

内部

在:

$SMTPType = "Intern";

将使用直接在bluetronix CMS中设置的电子邮件账户.

账户位于:

Email → Accounts

在$From中使用的发件人地址必须作为账户存在于那里.

外部

在:

$SMTPType = "Extern";

将使用外部SMTP访问数据.

这些数据在CMS中管理,位于:

Email → Server - Extern

管理。

在$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加载。

这样,接收者可以直接在电子邮件中查看图像,而无需单独从Web服务器加载。

$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

bluetronix CMS的中央邮件系统可以直接从自有的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:

内部
→ 电子邮件 → 账户

或者:

Extern
→ Email → Server - Extern

erfolgen.

每次邮件发送还会通过:

00_MailCache

protokolliert. Die entsprechenden Cache-Einträge bleiben eine Woche erhalten.

这样,开发者可以直接从自己的PHP脚本中使用bluetronix CMS已存在的邮件系统,而无需自己实现完整的SMTP逻辑。

常见问题

客户常问我们的问题

中央邮件系统为PHP提供了哪些功能?

对于普通电子邮件和通讯,你可以使用BlueSMTPMail()。而对于与CMS表单一起发送的邮件,则提供BlueFormSend()。

我在哪里可以找到内部电子邮件账户?

内部邮件账户在电子邮件 → 账户下设置。对于发送,你需要将$SMTPType设置为内部。发件地址必须属于已设置的账户。

如何使用外部SMTP服务器?

在电子邮件 → 服务器 - 外部下设置凭据,使用$SMTPType = "外部";。发件地址必须与所选配置匹配。

邮件和新闻通讯之间有什么区别?

使用 $MailType = "Mail"; 发送普通电子邮件,收件人位于 $To 中。对于新闻通讯,你需要设置 $MailType = "Newsletter"; 并通过 $NewsletterTo 传递收件人。

如何传递多个新闻通讯收件人?

将地址填写在 $NewsletterTo 中,并通过换行符分隔每个电子邮件地址。

我可以在同一电子邮件中发送文本和HTML吗?

可以。纯文本在 $TextContent 中,而你通过 $HTMLContent 传递格式化的HTML消息。

如何给电子邮件添加附件?

通过 $Attachments 传递网页中的文件路径。多个附件通过换行符分隔路径。

我如何直接在电子邮件中嵌入图片?

模板使用 $EmbedImages = "ja";。这将根据描述的CMS功能直接嵌入HTML消息中使用的图片。

MailPlaceholderReplacement 用于什么?

它允许你在文本和HTML内容中用个性化的值替换占位符,例如姓名、订单号或个人链接。模板描述了搜索和替换原则,但没有具体的传递格式。

我如何将发送归档为表单条目?

在 BlueSMTPMail() 中设置 $FormEntry = "JA";。根据模板,将在 00_form 中额外保存一个条目。

我在哪里可以检查发送状态?

模板描述了 00_MailCache 表。那里创建的发送条目将保存一周。单独的处理条目不能作为交付给收件人的附加证明。

我什么时候使用 BlueFormSend()?

BlueFormSend() 被用于带有CMS表单的电子邮件发送。参数包括发送控制、主题、客户副本、表单归档和表单ID。

CMS