【问题标题】:Dynamic HTML in PHP MailerPHP Mailer 中的动态 HTML
【发布时间】:2014-09-19 07:07:35
【问题描述】:

我有一个包含以下字段的数据库

  1. 身份证
  2. 标题
  3. 网址
  4. 总结

此数据存储在一个多维关联数组中,如下所示:

$array[0][title] = Title-1
$array[0][summary] = Summary-1
$array[1][title] = Title-2
$array[1][summary] = Summary-2

我还有一个脚本可以循环遍历这些并根据需要进行渲染。

但是我发现很难将此输出放入邮件正文中。

环顾四周,我得到了以下信息

  1. Dynamic Content into mail() $message
  2. Dynamic HTML Table in PHP Mail
  3. HTML mail with dyanmic values
  4. How to send HTML Dynamic Table as mail in php?

我通过 google 找到了更多解决方案,但它们或多或少类似于上面的解决方案。

这些内容没有帮助,因为内容部分是静态的,部分是动态的。就我而言,整个身体都是动态的

这是我目前所拥有的

function get_mailer_contents($email_category) {
    global $mailer_contents;
    $fetch_mailer_contents = mysql_query("SELECT * from `selected_posts` WHERE industry='$email_category'");
    $id = "0";
    while($temp_mailer_contents = mysql_fetch_array($fetch_mailer_contents))
        {
            $mailer_contents[$id]['title'] = $temp_mailer_contents['title'];
            $mailer_contents[$id]['description'] = $temp_mailer_contents['description'];
            $id ++;
        }
    }

get_mailer_contents($email_category);

foreach($mailer_contents as $title_cat)
{
    echo "==================";
    echo "<br>";
    echo $title_cat['title'];
    echo "<br>";
    echo $title_cat['description'];
    echo "<br>";
}

此处呈现的输出不是最终输出。我只是将其用于测试目的。

我的问题是,foreach 函数(或任何类似的遍历数组的函数)不能成为 $message(邮件正文) 邮件程序的一部分,因为数据是动态的,所以我需要一个机制

希望我已经足够清楚了。如果您需要更多细节,请告诉我

【问题讨论】:

  • 这与正常呈现 html 输出的方式没有什么不同,只需先处理即可。
  • 显示您的代码 = 获得您需要的帮助。
  • 是的,是的,代码正在路上:)

标签: php html mysql email phpmailer


【解决方案1】:

您只需将输出分配给变量,然后在 PhpMailer 中使用它,如下代码所示:

$html = '<html><head><meta charset="utf-8" /></head><body>';

foreach ($array as $item) {
   $html.= '<p>'.$item['title'].' '.$item['summary']."</p>";
}

$html.= '</body></html>';

// ... setting up phpMailer


$phpMailer->Body = $html;
$phpMailer->AltBody = nl2br(strip_tags($html));
$phpMailer->IsHTML(true); // you need to set HTML format

您还需要使用IsHTML 方法告诉phpMailer 以HTML 格式发送内容,您还应该设置AltBody 以将您的邮件显示给不希望/不能以HTML 格式显示的人。上面我使用了一种非常简单的方式将html转换为文本。但是,您可以根据需要在此处放置任何其他文本。

【讨论】:

    猜你喜欢
    • 2011-10-05
    • 2014-08-18
    • 2014-02-11
    • 1970-01-01
    • 2013-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多