嗨,我是新手,只对PHP有基本的了解,所以任何帮助都是最受欢迎的。 基本上我试图通过PHP发送一个可以有多个收件人的电子邮件。 内容还需要按照特定条件显示用户列表。 我有脚本来查看数据库并发送电子邮件,但它只发送给一个人,只列出内容中的一个人。 请有人可以建议如何将其更改为电子邮件/显示给多个收件人。 我知道应该至少有三个人被发送到。

任何帮助/指针都是最受欢迎的。 谢谢。

<?php

session_start();

require_once('../config.php');

$errmsg_arr = array();

$errflag = false;

$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
if(!$link) {
die('Failed to connect to server: ' . mysql_error());
}

$db = mysql_select_db(database_name);
if(!$db) {
die("Unable to select database");
}

$result = mysql_query("SELECT username FROM users WHERE user_type='admin'");

while($result_email = mysql_fetch_array($result))

$to = $result_email['username'];

$result2 = mysql_query("SELECT * FROM users
WHERE ticked='1' AND NOT user_type='super'");

while($result2 = mysql_fetch_array($result2))

$body = $result2['fname'] . " " . $result2['lname'] . " , " . $result2['username'];

mail ($to, 'Subject', $body);

?>

===============>>#1 票数:1

你可以做到这一点。 他们只需要以逗号分隔。

$to = "email@email.com, email2@email2.com";

参考: http//php.net/manual/en/function.mail.php

此外,您的代码粘贴方式有点令人困惑。 但是,如果您在while循环中加载所有电子邮件。 然后你想在一段时间后发送它。 例如:

你希望它是:

//create an empty $to string
$to = '';

//add all the emails
while($emails as $email)
{
    $to .= $email . ',';
}

//remove the last comma
rtrim($to, ","); 

//send away
mail($to, $subject, $message);

===============>>#2 票数:1

你的代码错了。 你使用它会有错误。 你需要使用implode在电子邮件之间添加逗号。 检查你的PHP。 我纠正了,但你必须使用while声明。 你有一个作业的多个mysql查询。 你也不应该使用mysql_query。 使用PDO代替......

你应该像这样使用它

<?php
    while($row = mysql_fetch_array($result2))
    {
       $addresses[] = $row['username'];
    }

    $to = implode(", ", $addresses);
?>

用你的代码

            <?php

                session_start();

                require_once('../config.php');

                $errmsg_arr = array();

                $errflag = false;

                $link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
                if(!$link) {
                die('Failed to connect to server: ' . mysql_error());
                }

                $db = mysql_select_db(database_name);
                if(!$db) {
                die("Unable to select database");
                }

                $result = mysql_query("SELECT username FROM users WHERE user_type='admin'");

                while($row = mysql_fetch_array($result2))
                {
                    $addresses[] = $row['username'];
                }

                $to = implode(", ", $addresses);

                $result2 = mysql_query("SELECT * FROM users
                WHERE ticked='1' AND NOT user_type='super'");

                $body = mysql_fetch_array($result2);
                $body = $result2['fname'] . " " . $result2['lname'] . " , " . $result2['username'];

                mail ($to, 'Subject', $body);

            ?>

===============>>#3 票数:0

您使用语句$to = $result_email['username'];重复覆盖$的值$to = $result_email['username']; 您应该改为以逗号分隔的列表。 但为了善良,

  1. 考虑将地址设置为BCC,并将TO设置为无关紧要的内容,例如noreply @ [yourdomain]以隐藏收件人的地址。
  2. 使用未弃用的DB访问: PDO

===============>>#4 票数:0

您对mail()的调用不在循环中,因此它只会发送一封电子邮件。

你设置$的while循环只是在每次循环迭代时覆盖前一个值。

所以最后$ to将被设置为第一个查询返回的最后一个用户名。 并且你的$ body将是你想要的第二行查询返回的最后一行。

  ask by Matt translate from so

未解决问题?本站智能推荐:

1回复

如果我的案例中的“收件人”超过1个,则PHP发送电子邮件

在以下情况下如何使用PHP自动发送电子邮件: 只有1封电子邮件 超过1个电子邮件 在PHP变量中。 您可以在变量$to上看到 如果同一个部门有多个电子邮件,那么我希望它像:某人@ test.com,某人1@test.com 但是,如果只有1封电子邮件
2回复

如何向多个收件人发送电子邮件

我正在尝试创建一个应用程序,其中功能之一就是将电子邮件发送到多个地址,这并不容易。 我使用了foreach循环,但是每当发生错误时,尤其是在收件人邮件地址无效时,应用程序就会停止。 这是我的代码 我怎样才能 通过在引发异常后继续,将消息发送给多个收件人,并使其失败。
1回复

Swiftmailer:向多个收件人发送电子邮件

我正在尝试通过swiftmailer lib从联系表单发送电子邮件。 我的设置将邮件发送给单个收件人,但是当我尝试发送多个电子邮件时,会引发错误: 给定[email1 @ gmail.com,email2 @ gmail.com]邮箱中的地址不符合RFC 2822,3.6.2。
3回复

使用swiftmailer向多个收件人发送电子邮件

我正在尝试在项目中使用swiftmailer,以便可以将html新闻稿发送给多个用户。 我已经进行了彻底的搜索,但我所得到的一切从未为我工作。 我想在用逗号分隔的表单输入字段中粘贴多个收件人,并将html电子邮件发送给他们。 我将收件人设置为变量($recipients_emails) ,
2回复

Yii发送电子邮件给多个收件人

你好,我在这里使用yiimail。 我想向多个收件人发送电子邮件 这是我的代码 $mailCC从用户获取输入值,从数据库获取$model->receiver1 。 如果用户为$mailCC输入2个其他用户,则此消息仅发送到第一封电子邮件,而不同时发送到第一封电子邮件。
2回复

多个收件人通过电子邮件发送PHP

如何在php中发送给多个收件人? 我只有一个输入字段供用户输入所有收件人。 该代码已经具有可创建标签和自动填充的javascript。 该代码仅发送到第一个输入。 这是代码: <?php error_reporting(0); session_start(); in
2回复

使用PHP向MySQL DB中的收件人发送电子邮件

我在一个网站上工作,当一个人在框中输入电子邮件时,它将保存到MySQL DB。 我想制作一个页面,一旦被访问,将向数据库中的配方发送电子邮件。 我的脚本在这里: 因此,我正在尝试$to从DB获得这些多封电子邮件,然后向他们发送我输入的电子邮件。 我该怎么做? 我知道我已经离开
7回复

如何从数据库查询(PHP)向多个收件人发送电子邮件

我正在尝试将电子邮件发送到我的数据库中的多个电子邮件地址。 这是我目前的代码。 它仅在我指定单个电子邮件地址时才起作用,但是,我需要让他们查询我的数据库并将电子邮件发送到每个电子邮件地址。 我在哪里错了?
1回复

PHP表单未向收件人发送电子邮件[关闭]

我的PHP联系表格有问题; 填写表格后,它会向我发送感谢页面,但不会将邮件发送给收件人邮件……请告诉我谢谢。
1回复

向多个收件人发送电子邮件 - 抄送:和密送:在PHP中

该程序正在运行,但如何发送多个CC和BCC。