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