PHP发送由Loop生成的HTML邮件

时间:2011-06-13 08:32:45

标签: php email loops

我在这里很丢失。

我需要知道是否有办法发送包含循环生成的HTML内容的PHP电子邮件(我认为是mySQL循环)

我现在没有任何代码,因为我仍在寻找实现此目的的方法。

简而言之,我需要通过PHP代码发送HTML电子邮件。

此HTML邮件将包含一些静态内容。

其他一些内容将取自mySQL。

问题是我有一些桌子可能需要复制每个我必须发送的内容。

我会解释。

我的用户可以提交表单。

此表单提供1位或更多作者的详细信息。

当他们提交表格时,所有细节都会转到数据库。

如果他们输入更多作者的详细信息,每个作者都将拥有自己的数据库表。

现在,当有更多作者发送HTML电子邮件时,包括他们输入信息的每个作者的所有信息。

由于HTML邮件是由简单的HTML表格制作的,因此这是HTML邮件必须采用的结构。

1° Table for 1° Author

2° Table for 2° Author

3° Table for 3° Author

等。

现在我的问题很简单。这可以通过简单地使用mySQL循环来实现吗?

如果是,如何?

你能提供一个非常基本的样本让我明白吗?

或者我应该使用其他东西吗?

谢谢

2 个答案:

答案 0 :(得分:0)

是的,你可以通过邮件发送html内容。 phpmailer 它包含邮件代码,可配置。 构建html内容并将其传递给body。 有用。 这是phpmailer的一些教程 http://www.ineedtutorials.com/code/php/sending-emails-with-php-php-tutorial http://www.learnphp-tutorial.com/Email.cfm

答案 1 :(得分:0)

我认为您应该考虑使用不同的数据库布局,这也可以解决这个问题: 而不是每个作者一个表(你永远不应该这样做)在桌子上创建所有作者和一个“内容表”,它们存储与当前“auther-tables”基本相同的信息,但是每一行都与外国人相关联作者表中作者的关键。然后,您可以使用简单连接选择SELECT,ORDER和GROUP BY作者,并通过一个查询轻松获取所有数据。 通过该查询的结果,您可以轻松地在PHP中创建HTML表:

如果执行以下查询

SELECT a.author_name AS name, c.content_title AS title
    FROM content c JOIN author a ON a.author_id=c.author_id
    ORDER BY a.author_name

你可以在PHP中做类似的事情:

if(count($result) > 0)
{
    $currentName = $result[0]['name'];
    $tables = "<table><tr><th>" . $currentName . "</th></tr>";
    foreach($result as $row)
    {
        if($currentName != $row['name'])
        {
            $currentName = $row['name'];
            $table .= "</table><table><tr><th>" . $currentName . "</th></tr>";
        }
        $table .= "<tr><td>" . $row['title'] . "</td></tr>";
    }
    $table .= "</table>";
}