2017-04-08 181 views
0

数据库中检索多个电子邮件地址,所以我有过这样的问题,我一直在试图解决.. 我从数据库中检索客户电子邮件列表,一旦我点击进程,它假设发送一封电子邮件到“客户的电子邮件”..下面的屏幕截图描述了我的意思..发送电子邮件至从PHP

因此,一旦你按下第一行的“进程”按钮,它应该发送一封电子邮件到检索到的电子邮件在第一行 image

// The code below retrieves all the customer info from the database including customers email addresses. 
    <?php 
while ($row = $result->fetch_assoc()){ 
    print "<tr>"; 
    print "<td>" . $row['TransactionID'] . "</td>"; 
    print "<td>" .$row['ItemName']."<br>" ."</td>"; 
    print "<td>" .$row['ItemQTY']."<br>" ."</td>"; 
    print "<td>" . $row['ItemAmount'] . "</td>"; 
    print "<td>" . $row['BuyerEmail'] . "</td>"; 
    print "<td ><a href='#sendemail'>Process</a></td>"; //Once this link is clicked, it should take me to the next code send an email the retrieved email. 


    print "</tr>"; 
} 
$mysqli->close(); 


?> 

// // ---------------------

// The code below should trigger once i click "Process" and send an email to the customer. 
if (isset($_GET['sendemail'])){ 

require 'PHPMailer/PHPMailerAutoload.php'; 

$mail = new PHPMailer; 

$mail->isSMTP();         
$mail->Host = 'smtp.gmail.com';       
SMTP servers 
$mail->SMTPAuth = true;          
authentication 
$mail->Username = '****@gmail.com';   
$mail->Password = '********'; 
$mail->SMTPSecure = 'tls';       
`ssl` also accepted 
$mail->Port = 587;         

$mail->setFrom('****@gmail.com', 'RANDOMNAME'); 
$mail->addReplyTo('****@gmail.com', 'RANDOMNAME'); 
$mail->addAddress('BuyerEmail'); 


$mail->isHTML(true); 

$bodyContent = '<h1>Our Valued Customer,</h1>'; 
$bodyContent .= '<p>Your Order is ready for pick up!</p>'; 

$mail->Subject = 'RANDOMNAME'; 
$mail->Body = $bodyContent; 

if(!$mail->send()) { 
    echo 'Message could not be sent.'; 
    echo 'Mailer Error: ' . $mail->ErrorInfo; 
} 
runsendemail(); 



} 
    ?> 

当$ mail-> addAddress('email @ example');有一个预定义值..但不知道如何使它“变量”,意思是它不断根据从数据库中检索电子邮件列表改变..

回答

0

你的流程链接应该链接到网页包含您的邮件的逻辑和通沿着要使用的电子邮件<a href="/sendmail.php?sendemail=<?php echo urlencode($row['BuyerEmail']); ?>">Process</a>

然后您的sendmail.php文件可以收到电子邮件$_GET['sendemail']并继续您的邮寄逻辑$mail->addAddress(urldecode($_GET['sendemail']));

注意:希望你有一些类型的身份验证,这不是一个公共可访问的页面,否则任何人都可以触发此文件并将您的数据库信息发送到他们选择的电子邮件,或打这个文件一吨并导致系统崩溃。

0

更改为以下几点:

print "<td ><a href='#sendemail'>Process</a></td>"; //Once this link is clicked, it should take me to the next code send an email the retrieved email. 

这是一些事情,你应该将其更改为:

echo " 
<td> 
<form method='get' action='CHANGE IT TO YOUR PHP SCRIPT NAME'? 
<input type='hidden' name='sendemail' value='$row['BuyerEmail']'> 
<input type='submit' value='Process'> 
</form> 
</td> 
"; 

这里我用一个简单的HTML表单。我使用get方法传递一个隐藏值,即您的买方电子邮件。如果它是一个不同的文件,请将操作更改为您的php脚本名称。现在,你可以在你的电子邮件发送代码作为买家的电子邮件地址使用$ _GET [“sendemail”]。