- 論壇徽章:
- 0
|
用PHP寫了一個能發(fā)送附件的郵件頁面,可以正常收到郵件,但是附件卻不能正常接收,大小為0K
代碼如下:
<?php
$to="****";//收件人
$title="test";//主題
$subject="附件測試";//內(nèi)容
$from="ONE_FAX";
$filename="add.gif";//附件
$file="./image/$filename";
// 定義分界線
$boundary = uniqid( "" );
$headers = "Content-type: multipart/mixed; boundary= $boundary\r\n";
$headers .= "From: $from\r\n";
// 打開文件
$fp = fopen($file, "r" );
// 把整個文件讀入一個變量
$read = fread($fp, filesize($file));
//我們用base64方法把它編碼
$read = base64_encode($read);
//把這個長字符串切成由每行76個字符組成的小塊
$read = chunk_split($read);
//現(xiàn)在我們可以建立郵件的主體
$body = "--$boundary
Content-type: text/plain; charset=iso-8859-1
Content-transfer-encoding: 8bit
$subject
--$boundary
Content-type: image/gif; name=$filename
Content-disposition: attachment; filename=$filename
Content-transfer-encoding: base64
$read
--$boundary--";
//發(fā)送郵件
if(mail($to, $title,$body,$headers))
print "OK! the mail $from --- $to has been send<br>";
else
print "fail to send mail <br>";
?>
說明:
1、附件文件為服務器上的文件,位于網(wǎng)頁所在目錄的/image/下
2、輸出整個郵件后得到的內(nèi)容為下:
--48c8d18e743a4
Content-type: text/plain; charset=iso-8859-1 Content-transfer-encoding: 8bit 附件測試
--48c8d18e743a4
Content-type: image/gif; name=add.gif Content-disposition: attachment; filename=add.gif Content-transfer-encoding: base64 R0lGODlhEAAQANU/AMPa/4OQu6/Y//r9/5CTudTd/rzW/3h5pNPp/+Xz/8bW/87a/8Li/8fk//b6 //D4/+v1/8zl/73f/+Lw/7jd/+Lq9tfr/93t/+Hv/8zm/3J0naXC6sne/+Xv+sfR/8rY//b4+9ft /3uKuJ2s0YyPs93o9rvE+Kqu+OLr+JWcwOHt+Orz+tDh/4Gr3+32/5ylx2SEwWhsnt3r+M/g/7Ov xLG30cHU/+/2+tLh+qK85Hp8pZCRuIqf0QCpVP///////yH5BAEAAD8ALAAAAAAQABAAAAaWwJ+w 18sZj5uAcPkjVp7PEuolYjZ7vqzWR4O1rsRwb+B4DGqxmEYsLrsSONPpsCT6ePg8D+GhD8dlEAkY FxYILDp1PQ56eRkziUIjIA+ChIYRDRyRPy83EI14DJtLLysJE4UIGQ0MEgCcKR0ToTwUsEspKqqs rhQCBrEyIautEr/AnAQFzAsLHx8KNjbBSyQ72NnaBAdBADs=
--48c8d18e743a4--
按照對郵件的理解,我的這個郵件已經(jīng)加載了附件,但是不知道為什么,我收到的郵件總是不能打開附件
[ 本帖最后由 linych 于 2008-9-11 16:49 編輯 ] |
|