【问题标题】:send predefined email templates via phpmailer通过 phpmailer 发送预定义的电子邮件模板
【发布时间】:2014-08-08 01:36:22
【问题描述】:

对于重复的问题,我们深表歉意。我还没有想出解决这个问题的办法。

我的问题:

我有一个表单可以将预定义和自定义的书面模板发送给用户。 在该表单中,我有一个选择选项来选择要显示在给定 textarea 字段中的模板。如果您选择预定义的模板,那么您可以在 textarea 上获得预览。如果您选择自定义模板,那么您可以在 textarea 中写入您的文本。

我已经使用 phpmailer 和普通的 php 邮件功能实现了这一步。

预览后,我必须将文本区域中的当前可视模板发送给用户。

我尝试过使用 php 邮件程序,它确实发送没有图像和 url 标签的邮件。我可以用表格查看纯文本。就是这样。

当我尝试使用 phpmailer 时,我可以使用发送完整的 html 内容 $body = file_get_contents('template-1.html');

如果我使用它,那么我只能发送一个模板。我需要为要发送给用户的所选模板编写 if else 条件。

谁能帮帮我。提前致谢。

【问题讨论】:

  • phpmailer 的工作是发送电子邮件。它不是模板引擎,也不应该是。如果你想要模板,那么你必须编写代码来加载它们并将它们输入 phpmailer 以发送出去。
  • @MarcB,我想知道如何将选定的模板加载到 $body。如果可能的话,你能告诉我吗?
  • 因此,除去所有杂乱无章的东西,真正的问题似乎是“如何根据用户的选择加载文件?”。对吗?
  • @Mr.Llama,两者都是正确的。当我使用上述代码从 html 页面获取内容时,您的观点是正确的。如果我使用普通邮件发送邮件,它只发送文本。如果正常的帖子正常工作,我不需要使用 file_get_contents('template-1.html');

标签: php html email templates phpmailer


【解决方案1】:

由于问题中缺乏信息,这主要是对想要什么的疯狂猜测!这听起来像是一个非常基本的问题。

在您的页面上,您有一个 HTML select 元素,可以让您选择一个模板。我假设这个值以$_POST['template']

结尾
<select name="template">
<option value="template-1">Template 1</option>
<option value="template-2">Template 2</option>
<option value="template-3">Template 3</option>
</select>

然后在您的脚本中,使用该值加载适当的模板:

$templates = array('template-1', 'template-2', 'template-3');
//Validate selection
if (in_array($_POST['template'], $templates)) {
    $body = file_get_contents($_POST['template'].'.html');
} else {
    die ('No template selected');
}
//...now get on with sending...

有帮助吗?

【讨论】:

  • 这就是我想要实现的。但是,我始终没有选择任何模板。
  • 您确实将select 包装在form 标记中,对吧?试试var_dump($_REQUEST); 看看你在表单中提交了什么。
猜你喜欢
  • 2021-03-23
  • 1970-01-01
  • 2011-12-19
  • 2018-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-23
  • 2011-04-06
相关资源
最近更新 更多