1

我将 pdf 或文本文件存储在 mysql blob 对象中,并且我正在尝试使用 php mailer 将其作为邮件中的附件发送。

我正在发送邮件。

$mail->AddAddress($pr_email);
$mail->Subject = "Meeting Invitation -$meeting_name";

$mail->AddStringAttachment($data);
$mail->IsHTML(true);
$mail->Body =$message;

if(!$mail->Send())
{
    $message= "Error sending: " . $mail->ErrorInfo;
    header("Location:userprofile.php?Message={$message}");
}

从哪里来$data _

$tmpName  = $_FILES['image']['tmp_name'];
$fp     = fopen($tmpName, 'r');
$data = fread($fp, filesize($tmpName));
$data = addslashes($data);
fclose($fp);
$query = "UPDATE demo_meeting SET attachment='$data' where meetingID='$mtngid'";
$results = mysql_query($query);

现在我以附件形式接收邮件,但内容不存在,仅显示 0K.

请告诉我我可能做错了什么。

4

1 回答 1

1

正如我在 StackOverflow中看到的,您没有将其他参数传递给 AddStringAttachment:mime 类型和文件名。

$filename="test.png";
$encoding = "base64"; 
$type = "image/png";
$mail->AddStringAttachment(base64_decode($data), $filename, $encoding, $type);

此外,永远不要使用addslashes“保护” mysql 字段,您必须mysql_real_escape_string改用(或者,使用不会很快被标记为过时的PDO_MySQL驱动程序)

于 2012-11-02T15:56:30.997 回答