作者 主題: [求助]Email寄出後有收到,但是沒有收到附加檔案  (閱讀 5220 次)

0 會員 與 1 訪客 正在閱讀本文。

crazyday7

  • 懷疑的國中生
  • **
  • 文章數: 83
    • 檢視個人資料
這個附加檔案是網路上COPY後修改的
就差附加檔案沒收到
有人知道錯誤在哪嘛?

代碼: [選擇]
<?
/*
寄信程式
$a : 寄件人
$b : 收件人
$title : 信件標題
$msg : 信件內容
$filename : 附加檔案
*/
<?
require("mail.php");

$title=$_POST[title];
$content=$_POST[content];
$filename=$_POST[filename];

$count=1;
foreach($_POST[user] as $key => $value)
{
$temp='$mail'.$count;
list($a,$b)=explode("!#",$value);

sendmail($a,$b,$title,$content,$filename);
$count++;
    //附加檔案處理
if($filename){
$mimeType = mime_content_type($filename); // 判斷檔案類型
if(!$mimeType)$mimeType ="application/unknown"; // 若判斷不出則設為未知
$fp = fopen($filename, "r"); // 開啟檔案
$read = fread($fp, filesize($filename)); // 取得檔案內容
fclose($fp); // 關閉檔案
$read = base64_encode($read);//使用base64編碼
$read = chunk_split($read);  //把檔案所轉成的長字串切開成多個小字串
$file = basename($filename); //傳回不包含路徑的檔案名稱(mail中會顯示的檔名)

// 附檔處理開始
$body .= '--'.$boundary ."n";
// 設定附加檔案HEADER
$body .= 'Content-type: '.$mimeType.'; name='.$file."n";
$body .= 'Content-transfer-encoding: base64'."n";
$body .= 'Content-disposition: filename; filename='.$file."nn";
// 加入附加檔案內容
$body .= $read ."n";
}//處理附加檔案完畢
$body .= "--$boundary--";//郵件結尾

//mail($mailto, $subject, $body, $headers); // 寄出信件
}

?>
« 上次編輯: 2010-06-28 16:57 由 crazyday7 »
有時問的問題會有點奇怪...
請見怪不怪...
新手上路,希望各位多多包含,謝謝m(_ _)m。

Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4870
    • 檢視個人資料
    • http://www.ecmagic.com
這個附加檔案是網路上COPY後修改的
就差附加檔案沒收到
有人知道錯誤在哪嘛?
...略...

建議用 phpmailer 或是 php版置頂有一篇...

http://phorum.study-area.org/index.php/topic,53860.0.html

crazyday7

  • 懷疑的國中生
  • **
  • 文章數: 83
    • 檢視個人資料
那我想請教一下
$file = '/home/appleboy/adwii/AB2.jpg';  <---  他是去抓伺服器的資料
要如何讓他去抓使用者自行附加的檔案呢?


有時問的問題會有點奇怪...
請見怪不怪...
新手上路,希望各位多多包含,謝謝m(_ _)m。

Darkhero

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3728
  • 性別: 男
    • 檢視個人資料
    • ㄚ凱隨手紀
那我想請教一下
$file = '/home/appleboy/adwii/AB2.jpg';  <---  他是去抓伺服器的資料
要如何讓他去抓使用者自行附加的檔案呢?


使用者的檔案要上傳, 上傳就會有位置了....
希望我們的討論是為了把問題解決,而不是爭論誰對誰錯.
『灌水才是重點,發文只是順便』
『我寧可讓不會釣魚的工程師餓死,也不想讓會餓死的工程師去攪沉公司....』
Blog: http://blog.darkhero.net/
秘密基地: http://www.darkhero.net/comic/
目前服務的網站: http://www.libook.com.tw/

crazyday7

  • 懷疑的國中生
  • **
  • 文章數: 83
    • 檢視個人資料
那我想請教一下
$file = '/home/appleboy/adwii/AB2.jpg';  <---  他是去抓伺服器的資料
要如何讓他去抓使用者自行附加的檔案呢?


使用者的檔案要上傳, 上傳就會有位置了....

$filename <-- 使用者附加檔案位子
$mail->addAttachment("$filename");

但是出現
Could not access file: 1.jpg
有時問的問題會有點奇怪...
請見怪不怪...
新手上路,希望各位多多包含,謝謝m(_ _)m。

crazyday7

  • 懷疑的國中生
  • **
  • 文章數: 83
    • 檢視個人資料
那我想請教一下
$file = '/home/appleboy/adwii/AB2.jpg';  <---  他是去抓伺服器的資料
要如何讓他去抓使用者自行附加的檔案呢?


使用者的檔案要上傳, 上傳就會有位置了....

$filename <-- 使用者附加檔案位子
$mail->addAttachment("$filename");

但是出現
Could not access file: 1.jpg


乾脆只接讓他去抓這個路徑還是跑出
Could not access file: C:\Documents and Settings\CanCare\My Documents\Downloads\1.jpg
有時問的問題會有點奇怪...
請見怪不怪...
新手上路,希望各位多多包含,謝謝m(_ _)m。

Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4870
    • 檢視個人資料
    • http://www.ecmagic.com
$filename <-- 使用者附加檔案位子
$mail->addAttachment("$filename");

但是出現
Could not access file: 1.jpg

路徑不對啊, 檔案上傳之後你放在哪裡?

crazyday7

  • 懷疑的國中生
  • **
  • 文章數: 83
    • 檢視個人資料
$filename <-- 使用者附加檔案位子
$mail->addAttachment("$filename");

但是出現
Could not access file: 1.jpg

路徑不對啊, 檔案上傳之後你放在哪裡?
一定要將檔案上傳到伺服器才能嗎?
不能說由使用者那邊夾帶之後傳送過去嗎?
有時問的問題會有點奇怪...
請見怪不怪...
新手上路,希望各位多多包含,謝謝m(_ _)m。

Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4870
    • 檢視個人資料
    • http://www.ecmagic.com
一定要將檔案上傳到伺服器才能嗎?
不能說由使用者那邊夾帶之後傳送過去嗎?

夾帶? 怎麼夾帶??

現在是要在主機端寄信, 不是 client 端寄耶~
client 端的所有資料都要上傳到主機, 主機才能處理呀
不然光一個檔名, 你要主機去哪邊抓資料啊?!  ::)

crazyday7

  • 懷疑的國中生
  • **
  • 文章數: 83
    • 檢視個人資料
引用
夾帶? 怎麼夾帶??

現在是要在主機端寄信, 不是 client 端寄耶~
client 端的所有資料都要上傳到主機, 主機才能處理呀
不然光一個檔名, 你要主機去哪邊抓資料啊?!  ::)
是喔...看來是我觀念不好
沒差伺服器不是我家
爆了也沒我的事XDD
« 上次編輯: 2010-06-29 17:40 由 crazyday7 »
有時問的問題會有點奇怪...
請見怪不怪...
新手上路,希望各位多多包含,謝謝m(_ _)m。

crazyday7

  • 懷疑的國中生
  • **
  • 文章數: 83
    • 檢視個人資料
在請教一下
那我要怎麼知道檔名叫什麼?
$file = "file/".$_FILES['uploadfile']['name']."";
$mail->addAttachment("$file");

這樣對嗎?
« 上次編輯: 2010-06-29 17:23 由 crazyday7 »
有時問的問題會有點奇怪...
請見怪不怪...
新手上路,希望各位多多包含,謝謝m(_ _)m。

Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4870
    • 檢視個人資料
    • http://www.ecmagic.com
在請教一下
那我要怎麼知道檔名叫什麼?
$file = "file/".$_FILES['uploadfile']['name']."";
$mail->addAttachment("$file");

這樣對嗎?

不對, 這樣只是抓上傳的檔名來用而已
上傳的檔案存放在哪裡?

先問一下, 你有處理過檔案上傳功能嗎?  ::)
如果沒有, 先搞定這部分再說吧

Darkhero

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3728
  • 性別: 男
    • 檢視個人資料
    • ㄚ凱隨手紀
希望我們的討論是為了把問題解決,而不是爭論誰對誰錯.
『灌水才是重點,發文只是順便』
『我寧可讓不會釣魚的工程師餓死,也不想讓會餓死的工程師去攪沉公司....』
Blog: http://blog.darkhero.net/
秘密基地: http://www.darkhero.net/comic/
目前服務的網站: http://www.libook.com.tw/

crazyday7

  • 懷疑的國中生
  • **
  • 文章數: 83
    • 檢視個人資料
有時問的問題會有點奇怪...
請見怪不怪...
新手上路,希望各位多多包含,謝謝m(_ _)m。

crazyday7

  • 懷疑的國中生
  • **
  • 文章數: 83
    • 檢視個人資料
在請教一下
那我要怎麼知道檔名叫什麼?
$file = "file/".$_FILES['uploadfile']['name']."";
$mail->addAttachment("$file");

這樣對嗎?

不對, 這樣只是抓上傳的檔名來用而已
上傳的檔案存放在哪裡?

先問一下, 你有處理過檔案上傳功能嗎?  ::)
如果沒有, 先搞定這部分再說吧
東西已經上傳上去
放在伺服器裡面
如果單純用
$file = "file/1.JPG";
是OK的
現在就差抓檔名
« 上次編輯: 2010-06-29 19:30 由 crazyday7 »
有時問的問題會有點奇怪...
請見怪不怪...
新手上路,希望各位多多包含,謝謝m(_ _)m。

Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4870
    • 檢視個人資料
    • http://www.ecmagic.com
東西已經上傳上去
放在伺服器裡面
如果單純用
$file = "file/1.JPG";
是OK的
現在就差抓檔名

好, 既然檔案已經在主機裡了
那就試試用這個『檔案名+完整路徑』給 addAttachment()
前面會有問題大概是因為檔名給錯或是路徑不對的關係

Darkhero

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3728
  • 性別: 男
    • 檢視個人資料
    • ㄚ凱隨手紀
希望我們的討論是為了把問題解決,而不是爭論誰對誰錯.
『灌水才是重點,發文只是順便』
『我寧可讓不會釣魚的工程師餓死,也不想讓會餓死的工程師去攪沉公司....』
Blog: http://blog.darkhero.net/
秘密基地: http://www.darkhero.net/comic/
目前服務的網站: http://www.libook.com.tw/

crazyday7

  • 懷疑的國中生
  • **
  • 文章數: 83
    • 檢視個人資料
英文...不好吞下...要慢慢品嚐才行...
不過現在問題都解決了
但是上傳檔案怎麼都會跑出
Array ( [uploadedfile] => Array ( [name] => h004.html [type] => text/html [tmp_name] => /tmp/phpDZxMsQ [error] => 0 [size] => 17554 ) )
怎麼弄掉阿?
明明就沒有echo出這段
有時問的問題會有點奇怪...
請見怪不怪...
新手上路,希望各位多多包含,謝謝m(_ _)m。

fillano

  • 鑽研的研究生
  • *****
  • 文章數: 526
    • 檢視個人資料
這個訊息用echo是做不出來的,這個是用print_r做的。

你上傳檔案的程式碼從哪來的?
Sapere aude! Habe Mut, dich deines eigenen Verstandes zu bedienen! ist also der Wahlspruch der Aufklärung.

crazyday7

  • 懷疑的國中生
  • **
  • 文章數: 83
    • 檢視個人資料
這個訊息用echo是做不出來的,這個是用print_r做的。

你上傳檔案的程式碼從哪來的?

原來如此,
隱藏了上傳的程式它還是跑出來,
就是少隱藏的那段...
放太遙遠了就忽略它了XDD
有時問的問題會有點奇怪...
請見怪不怪...
新手上路,希望各位多多包含,謝謝m(_ _)m。