Drupal 8:提交表单后发送 PDF 文件

Drupal 8 : send a PDF file after form submit

您好,我正在使用 Drupal 8,我想创建一个表单并在提交时将 PDF 文件发送到表单中的电子邮件中。

在 drupal 中创建网络表单的最简单方法是使用网络表单模块:

https://www.drupal.org/project/webform

使用 hook_form_alter(&$form, FormStateInterface $form_state, $form_id) 将您的自定义提交处理程序添加到该表单。在你的钩子函数中,你应该添加看起来像这样的代码:

$form['actions']['submit']['#submit'][] = 'your_custom_handler_function_name';

基本上 $form['actions']['submit']['#submit'] 是一个提交处理程序列表(一个数组),您只需添加自己的处理程序。它可能有点不同——你必须检查并查看确切的结构。添加函数后不要忘记清除缓存!

然后您的自定义提交处理程序将在提交表单时被调用,因此在您的函数中您可以发送一封附有 PDF 的电子邮件。

您的自定义提交处理程序应如下所示:

function your_custom_handler_function_name($form, FormStateInterface $form_state) {
...

要发送带附件的电子邮件,您必须安装额外的模块,例如 Swift Mailer:

https://www.drupal.org/project/swiftmailer

或类似的。

如果您不想进行任何编码,您可能想使用 the Rules module