首先,抱歉我的英文:) 我有一些phpmailer的问题。我想向多个人发送电子邮件,并附上专门的附件(pdf)。电子邮件地址必须从MySQL下载。 但我不知道我该怎么做。 PDF文件与datebase表中的列'name'具有相同的名称。 例如,我有:
这是一个例子,我有很多用户有很多pdfs。
简化我想要的内容:用户XXX必须收到XXX.pdf的电子邮件,但用户YYY必须收到YYY.pdf的电子邮件。
我不知道你是否理解我的意思:)
此刻我有类似的东西,我不知道如何在查询中为电子邮件分配名称(动态?)
$stmt = $dbh->prepare('SELECT id, name, email FROM users WHERE name ="SomeUserName" ');
// how to assign name to email??
$stmt->execute();
$mail = new PHPMailer(); // defaults to using php "mail()"
$mail->CharSet = 'UTF-8';
$body = 'SOME TEXT IN BODY';
$mail->AddReplyTo("name@yourdomain.com","First Last");
$mail->SetFrom('name@yourdomain.com', 'name@yourdomain.com');
while($row=$stmt->fetch(PDO::FETCH_ASSOC))
{
$mail->addAttachment("pdf/07.2017/".str_replace('.','_',$row['name']).".pdf");
$address = $row["email"];
}
$mail->AddAddress($address, "SOME TEXT");
$mail->Subject = "SOME SUBJECT";
$mail->MsgHTML($body);
if(!$mail->Send()) {
echo 'send';
} else {
echo 'didnt send';
}
答案 0 :(得分:1)
您需要在while循环之前设置所有常规信息。
然后在你的while循环中你需要:
用于将变量分配给MySQL查询
$stmt = $dbh->prepare('SELECT id, name, email FROM users WHERE name =:name');
$stmt->bindParam(":name", "somename");
显然"somename"
也可以是$_POST['somename']
等变量。