1

私はpdfまたはテキストファイルをmysql blobオブジェクトに保存しています.phpメーラーを使用してメールの添付ファイルとして送信しようとしています.

のようなメールを送信しています。

$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);

また、addslashesmysqlフィールドを「保護」するために使用することは絶対にしないでくださいmysql_real_escape_string。代わりに使用する必要があります(または、すぐに廃止とマークされないPDO_MySQLドライバーを使用します)

于 2012-11-02T15:56:30.997 に答える