【发布时间】:2013-05-08 10:49:44
【问题描述】:
我重新发布这个,因为没有人回答我之前的帖子。
我正在尝试向多个收件人发送附有相应 pdf 文件的电子邮件。我成功地向多个收件人发送了电子邮件,但收件人收到了多封电子邮件。收件人收到的电子邮件数量是存储在我的数据库中的电子邮件地址的数量。
我遇到的第二个问题是发送给收件人的附件都是同一个文件。场景应该是这样的:收件人 A 应该附有 pdf A 的电子邮件,收件人 B 附有 pdf B,依此类推。
这些 pdf 文件的文件名与每个收件人拥有的唯一控制编号相对应。例如。收件人 A 的控制号为 1234,因此他的 pdf 被命名为 1234.pdf。
我试图在 $ctrl_no = mysql_result($ctrl, 0) 中执行一个诡计循环,但它给出了一个错误,指出服务器的内存限制已达到。
希望您能帮助解决我的 2 个问题。
$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);
【问题讨论】:
-
不要再发布同样的问题只是为了试图提高它,因为你不喜欢之前的答案
-
如果我冒犯了你,我很抱歉。但是我需要喜欢能解决我问题的答案吗?我的意思是我来这里是为了寻求帮助,而不仅仅是为了喜欢答案。我删除了我之前的问题并发布了一个新问题,以便其他人可以阅读并帮助我。我希望你明白。还是谢谢你。
-
你仍然不应该仅仅因为你没有得到答案而转发,人们经常浏览未回答的部分。
-
如我所说,我已经删除了之前的帖子。
-
你不能只是删除一个帖子然后重新发布完全相同的问题来增加它。这不是一个可以发帖的论坛。