2017-08-17 60 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']的變量。

相關問題