2017-08-17 170 views
0

首先,对不起我的英语:) 我有一些phpmailer的问题。我想发送电子邮件给与他们专用的附件(pdf)的多个人。电子邮件地址必须从MySQL下载。 但我不知道我该怎么做。 PDF文件具有相同的名称,如数据库表中的列'名称'。 比如我有:PHPMailer - 发送带有附件的电子邮件到多个人和从MySql下载的电子邮件地址

这是一个例子,我有很多用户使用很多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'; 
} 
+0

查看PHPMailer提供的邮件列表示例。 – Synchro

回答

1

(动态?)指定名称电子邮件您需要在while循环之前设置所有常规信息。

那么你的while循环中,你需要:

  1. 添加附件
  2. 设置地址接收
  3. 发送电子邮件
  4. Clear the attachment
  5. 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']的变量。

相关问题