PHPMailer - 发送带有附件的电子邮件到多个人和从MySql下载的电子邮件地址
问题描述:
首先,对不起我的英语:) 我有一些phpmailer的问题。我想发送电子邮件给与他们专用的附件(pdf)的多个人。电子邮件地址必须从MySQL下载。 但我不知道我该怎么做。 PDF文件具有相同的名称,如数据库表中的列'名称'。 比如我有:PHPMailer - 发送带有附件的电子邮件到多个人和从MySql下载的电子邮件地址
- 用户名:XXX
- PDF名称(从FTP):XXX.pdf
- 电子邮件:[email protected]
这是一个例子,我有很多用户使用很多pdf。
简化我想要的:用户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("[email protected]","First Last");
$mail->SetFrom('[email protected]', '[email protected]');
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';
}
答
(动态?)指定名称电子邮件您需要在while循环之前设置所有常规信息。
那么你的while循环中,你需要:
- 添加附件
- 设置地址接收
- 发送电子邮件
- Clear the attachment
- Clear the address for the receiver
A分配可变你的MySQL查询
$stmt = $dbh->prepare('SELECT id, name, email FROM users WHERE name =:name');
$stmt->bindParam(":name", "somename");
显然"somename"
也可以像$_POST['somename']
的变量。
查看PHPMailer提供的邮件列表示例。 – Synchro