从数据库

时间:2017-06-23 11:03:33

标签: php mysql api email

我有一些用户列表,我必须向每个用户发送一封包含单独链接的电子邮件。

我的电子邮件 - 亲爱的用户,

这里有一些消息内容。要确认您的操作,请点击此处。

用户列表以下列格式保存在我的数据库中 -

锶。否 - 用户电子邮件 - 链接

我已经尝试了以下代码,页面进入加载循环并且没有任何反应。我想在这里使用电子邮件API,但我愿意接受其他想法来实现我的目标。

    ob_start ();
        error_reporting(E_ALL);
        ini_set('display_errors', 1);
        include_once("connect.php");
        $sql1 = "SELECT email FROM `tablename`";
        $result = mysqli_query($conn, $sql1);
        if (mysqli_num_rows($result) > 0) {
// output data of each row
            while($row = mysqli_fetch_assoc($result)) {
                $recipients = $row["email"];
                $url = $row["url"];
                try {
                    require_once 'SarvMTA_PHP/Sarv.php';
                    $sarv = new Sarv('userid', 'apitoken',
                        'SarvTES_APP_DOMAIN');
                    $smtp_user_name = "smtpusername";
                    $message["html"] = "
Please follow this link to confirm: .<a href='{$url}'>Click here </a>";
                    $message["subject"] = " subject";
                    $message["from_email"] = "TR <emai@mysite.com>";
                    $message["to"] = array(
                        array("email" => $recipient['email'], "name" => $recipient['name'], "type" => "to")
                    );
                    $message["headers"] = array("Reply-To" => "senderemail@mysite.com", "X-
Unique-Id" => "Id");
                    $result = $sarv->messages->sendMail($smtp_user_name, $message);
                    print_r($result);
                } catch (Sarv_Error $e) {
// Sarv errors are thrown as exceptions
                    echo "A sarv error occurred: " . get_class($e) . " - " . $e->getMessage();
                }
            }  else {
                echo "All mails sent ! Well done";
            }

1 个答案:

答案 0 :(得分:0)

您的代码中存在几个问题。

  

这在哪里使用? $ recipients = $ row [&#34; email&#34;];

  

在哪里定义了$ recipient变量? $收件人[&#39;电子邮件&#39;]和$收件人[&#39;名称&#39;]

如果我们假设 $ recipient = $ row ,显然您在 SQL select语句

中缺少名称

SQL语句更正为此(假设表中存在名称列

select name,email,url from `tablename`

下一步替换

$recipient = $row;
//instead of
$recipients = $row['email'];

然后更正您的信息

$message["html"] = "Please follow this link to confirm: .<a href='{$url}'>Click here </a>";

另外,将这两行移到循环外(可能在 if语句之后)

require_once 'SarvMTA_PHP/Sarv.php';
$sarv = new Sarv('userid', 'apitoken', 'SarvTES_APP_DOMAIN');