我正在重新发帖,因为没有人回复我以前的帖子。
我正在尝试向附加了相应pdf文件的多个收件人发送电子邮件。我成功向多个收件人发送电子邮件,但收件人收到多封电子邮件。收件人收到的电子邮件数是我数据库中存储的电子邮件地址数。
我遇到的第二个问题是发送给收件人的附件都是同一个文件。场景应该是这样的:收件人A应该附上带有pdf A的电子邮件,带有pdf B的收件人B,依此类推。
这些pdf的文件名对应于每个收件人拥有的唯一控件号。例如。收件人A的控制号为1234,因此他的pdf命名为1234.pdf。
我试图在$ ctrl_no = mysql_result($ ctrl,0)中执行一个wile循环,但是它给出了一个错误,说服务器的内存限制已经达到。
希望你能帮我解决我的两个问题。
$input = addslashes($_POST['dep']);
$email = "select email_address from student y where y.center = '$input'";
if ($p_address=mysql_query($email))
{
while($row = mysql_fetch_array($p_address))
{
$mail->AddAddress($row[0]);
$input = addslashes($_POST['dep']);
$control = "select control_no from student y where y.center = '$input'";
if($ctrl=mysql_query($control)){
$ctrl_no = mysql_result($ctrl, 0);
$mail->AddAttachment("reports/".$ctrl_no.".pdf");
}
else{
echo "No attached pdf.";
}
更新:$ mail函数
require_once('phpmailer/class.phpmailer.php');
include("phpmailer/class.smtp.php");
$mail = new PHPMailer();
$body = file_get_contents('phpmailer/body.html');
$body = preg_replace('/\/b]/','',$body);
$mail->IsSMTP();
$mail->Host = "smtp.gmail.com";
$mail->SMTPDebug = 1;
$mail->SMTPAuth = true;
$mail->SMTPSecure = "tls";
$mail->Host = "smtp.gmail.com";
$mail->Port = 587;
$mail->Username = "me@gmail.com";
$mail->Password = mypass;
$mail->SetFrom("me@gmail.com", "Office");
$mail->AddReplyTo("me@gmail.com"," Office");
$mail->Subject = "My Subject";
$mail->AltBody = "Subject file";
$mail->MsgHTML($body);
答案 0 :(得分:0)
您无法在一封电子邮件中向不同的收件人发送不同的附件。您需要发送单独的电子邮件。
答案 1 :(得分:0)
我认为您的问题可以通过在教程链接
下面调用函数检查来解决用于while循环,用于检索pdf文件名和发件人的电子邮件并调用函数
if (sendEmail("From Name", "from.email@yours.probably", "emailwhere@itgoes.to", "Email Subject", $msg,$_FILES['Attachment Name'])) {
echo "Email sent"; }
对于内存限制到达,这取决于你的电子邮件服务器,即使php也可以发送100MB的附件..可能会在链接下方提供帮助
希望它有效!
答案 2 :(得分:0)
<?php
$i = 0;
while($view = mysqli_fetch_array($result)){
$i++; ?>
<tr>
<td>
<label><?php echo $i . ". " . $view['name']; ?> </label>
</td>
<td>
<input type="text" name="receiverEmail<?php echo $i; ?>" id="receiverEmail<?php echo $i; ?>" value="<?php echo $view['email'] ?>" readonly style="width: 300px">
</td>
<td>
<input type="file" name="receiverFile<?php echo $i; ?>" id="receiverFile<?php echo $i; ?>">
</td>
</tr>
<tr style="height: 5px"></tr>
<?php }?>
<tr style="height: 15px"></tr>
<tr>
<td></td>
<td></td>
<td style="float: right">
<input type="submit" name="submit" id="submit">
</td>
</tr>
</form>