Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为数据库中的用户列表发送包含动态内容的电子邮件_Php_Mysql_Api_Email - Fatal编程技术网

Php 为数据库中的用户列表发送包含动态内容的电子邮件

Php 为数据库中的用户列表发送包含动态内容的电子邮件,php,mysql,api,email,Php,Mysql,Api,Email,我有一个用户列表,我必须给他们发送一封电子邮件,每个用户都有单独的链接 我的电子邮件- 尊敬的用户: 这里有一些消息内容。要确认您的操作,请单击此处 用户列表以以下格式保存在我的数据库中- 高级编号-用户电子邮件-链接 我已经尝试了下面的代码,页面进入加载循环,什么也没发生。我试图在这里使用电子邮件API,但我愿意接受其他想法,通过这些想法我可以实现我的目标 ob_start (); error_reporting(E_ALL); ini_set('dis

我有一个用户列表,我必须给他们发送一封电子邮件,每个用户都有单独的链接

我的电子邮件- 尊敬的用户:

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

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

高级编号-用户电子邮件-链接

我已经尝试了下面的代码,页面进入加载循环,什么也没发生。我试图在这里使用电子邮件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";
            }
ob_start();
错误报告(E_全部);
ini设置(“显示错误”,1);
包括_once(“connect.php”);
$sql1=“从`tablename`中选择电子邮件”;
$result=mysqli\u查询($conn,$sql1);
如果(mysqli_num_行($result)>0){
//每行的输出数据
while($row=mysqli\u fetch\u assoc($result)){
$recipients=$row[“email”];
$url=$row[“url”];
试一试{
需要一次“SarvMTA_PHP/Sarv.PHP”;
$sarv=新的sarv('userid','apitoken',
“SarvTES_APP_DOMAIN”);
$smtp\u user\u name=“smtpusername”;
$message[“html”]=“
请点击此链接确认:“;
$message[“subject”]=“subject”;
$message[“from_email”]=“TR”;
$message[“到”]=数组(
数组(“电子邮件”=>$recipient['email'],“name”=>$recipient['name'],“键入”=>“收件人”)
);
$message[“headers”]=数组(“回复”=>”senderemail@mysite.com“,”X-
唯一Id“=>“Id”);
$result=$sarv->messages->sendMail($smtp\u用户名,$message);
打印(结果);
}捕获(Sarv_错误$e){
//Sarv错误作为异常抛出
echo“出现sarv错误:”.get_类($e)。“-”$e->getMessage();
}
}否则{
回显“所有邮件已发送!干得好”;
}

您的代码中有几个问题

这在哪里使用?$recipients=$row[“email”]

$recipient变量在哪里定义?$recipient['email']和$recipient['name']

如果我们假设$recipient=$row,那么显然您的sqlselect语句中缺少了名称

require_once 'SarvMTA_PHP/Sarv.php';
$sarv = new Sarv('userid', 'apitoken', 'SarvTES_APP_DOMAIN');
更正您的SQL语句如下所示(假设表中存在name列

下一代

$recipient = $row;
//instead of
$recipients = $row['email'];
然后纠正你的信息

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

首先,更正您的消息,使其看起来像“请按照此链接确认:”请把您的URL变量定义为一个比特,也需要对代码进行一次修改,您不需要一次创建对象内部循环。请您的问题去掉代码中的所有空白行。它们毫无意义,使代码更难阅读。请给出错误的详细信息。做了更改。现在页面已被抛出。g http 500 errorTo add…还有一个挂起“while”循环的“else”而不是if语句。但是该消息可以在while完成后放置,而不需要else。。。
require_once 'SarvMTA_PHP/Sarv.php';
$sarv = new Sarv('userid', 'apitoken', 'SarvTES_APP_DOMAIN');