多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 邮件内容 ### [](https://octobercms.com/docs/services/mail#message-content)留言内容 可以使用邮件视图或邮件模板在十月份发送邮件。邮件视图由**/ views**目录中文件系统中的应用程序或插件提供。而邮件模板是通过后端界面通过*系统>邮件模板*进行*管理的*。所有邮件都支持使用Twig进行标记。 可以选择使用此方法[在插件注册文件中注册](https://octobercms.com/docs/services/mail#mail-template-registration)邮件视图`registerMailTemplates`。这将自动生成一个邮件模板,并允许使用后端界面对其进行自定义。 ### [](https://octobercms.com/docs/services/mail#mail-views)邮件检视 邮件视图驻留在文件系统中,所使用的代码表示视图文件的路径。例如,使用代码**author.plugin :: mail.message**发送邮件将使用以下文件中的内容: ~~~ plugins/ <=== Plugins directory author/ <=== "author" segment plugin/ <=== "plugin" segment views/ <=== View directory mail/ <=== "mail" segment message.htm <=== "message" segment ~~~ 邮件视图文件中的内容最多可以包括3个部分:**配置**,**纯文本**和**HTML标记**。各节按`==`顺序分开。例如: ~~~ subject = "Your product has been added to OctoberCMS project" == Hi {{ name }}, Good news! User {{ user }} just added your product "{{ product }}" to a project. This message was sent using no formatting (plain text) == <p>Hi {{ name }},</p> <p>Good news! User {{ user }} just added your product <strong>{{ product }}</strong> to a project.</p> <p>This email was sent using formatting (HTML)</p> ~~~ > **注意:**邮件视图中支持基本的Twig标签和表达式。 的**纯文本**部分是可选的,一个视图可以仅包含在配置和HTML标记部分。 ~~~ subject = "Your product has been added to OctoberCMS project" == <p>Hi {{ name }},</p> <p>This email does not support plain text.</p> <p>Sorry about that!</p> ~~~ #### 配置部分 配置部分设置邮件视图参数。支持以下配置参数: | 参数 | 描述 | | --- | --- | | **学科** | 邮件主题,必填。 | | **布局** | 该[邮件布局](https://octobercms.com/docs/services/mail#mail-layouts)代码,可选的。默认值为`default`。 | ### [](https://octobercms.com/docs/services/mail#mail-templates)使用邮件模板 邮件模板驻留在数据库中,可以通过*设置>邮件>邮件模板*在后端区域中创建。模板中指定的**代码**是唯一标识符,创建后即无法更改。 发送这些电子邮件的过程是相同的。例如,如果使用代码*this.is.my.email*创建模板,则可以使用以下PHP代码发送该模板: ~~~ Mail::send('this.is.my.email', $data, function($message) use ($user) { [...] }); ~~~ > **注意:**如果系统中不存在邮件模板,则此代码将尝试查找具有相同代码的邮件视图。 #### 自动生成的模板 邮件模板也可以通过[已注册的邮件视图](https://octobercms.com/docs/services/mail#mail-template-registration)自动生成。该**代码**值将与邮件视图路径相同(例如:author.plugin:mail.message)。如果邮件视图定义了**布局**参数,则将使用该参数为模板提供布局。 首次保存生成的模板时,在为指定代码发送邮件时将使用自定义内容。在这种情况下,邮件视图可以视为*默认视图*。 ### [](https://octobercms.com/docs/services/mail#mail-layouts)使用邮件布局 可以通过选择*设置>邮件>邮件模板*,然后单击*布局*选项卡来创建*邮件**布局*。它们的行为就像CMS布局,它们包含邮件的支架。邮件视图和模板支持邮件布局的使用。 默认情况下,Oct具有两种主要的邮件布局: | 布局 | 码 | 描述 | | --- | --- | --- | | 默认 | 默认 | 用于面向公众的前端邮件 | | 系统 | 系统 | 用于内部后端邮件 | ### [](https://octobercms.com/docs/services/mail#mail-template-registration)注册邮件布局,模板和部分 可以将邮件视图注册为模板,这些模板将在后端自动生成以进行自定义。可以通过“*设置”>“邮件模板”*菜单自定义*邮件模板*。可以通过覆盖[插件注册类](https://octobercms.com/docs/plugin/registration#registration-file)的`registerMailTemplates`方法来注册模板。[](https://octobercms.com/docs/plugin/registration#registration-file) ~~~ public function registerMailTemplates() { return [ 'rainlab.user::mail.activate', 'rainlab.user::mail.restore' ]; } ~~~ 该方法应返回一个[邮件视图名称](https://octobercms.com/docs/services/mail#mail-views)数组。 像模板一样,可以通过覆盖[Plugin注册类](https://octobercms.com/docs/plugin/registration#registration-file)的`registerMailPartials`and`registerMailLayouts`方法来注册邮件部分和布局。[](https://octobercms.com/docs/plugin/registration#registration-file) ~~~ public function registerMailPartials() { return [ 'tracking' => 'acme.blog::partials.tracking', 'promotion' => 'acme.blog::partials.promotion', ]; } public function registerMailLayouts() { return [ 'marketing' => 'acme.blog::layouts.marketing', 'notification' => 'acme.blog::layouts.notification', ]; } ~~~ 该方法应返回一个[邮件视图名称](https://octobercms.com/docs/services/mail#mail-views)数组。数组键将用作`code`部分或布局的属性。 ### [](https://octobercms.com/docs/services/mail#mail-global-variables)全局变量 您可以使用该`View::share`方法注册所有邮件模板全局可用的变量。 ~~~ View::share('site_name', 'OctoberCMS'); ~~~ 可以在[插件注册文件](https://octobercms.com/docs/plugin/registration)的register或boot方法内部调用此代码。使用上面的示例,该变量`{{ site_name }}`将在所有邮件模板中可用。