我有一些用户列表,我必须向每个用户发送一封包含单独链接的电子邮件。
我的电子邮件 - 亲爱的用户,
这里有一些消息内容。要确认您的操作,请点击此处。
用户列表以下列格式保存在我的数据库中 -
锶。否 - 用户电子邮件 - 链接
我已经尝试了以下代码,页面进入加载循环并且没有任何反应。我想在这里使用电子邮件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";
}
答案 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');