2011-04-20 55 views
0

我有一個腳本(就業申請表),發送一個HTML電子郵件與文件附件。它在Linux服務器上進行了測試和開發,但正在部署在Windows iis7上。問題在於,通過php郵件(smtp)發送的文件附件顯然被剝離了所有的數據。文件以分機和文件名的形式到達,但文件大小現在爲304字節或260字節。有什麼可能導致這種情況,我該如何解決。Linux服務器(PHP郵件)發送attatchments Windows IIS(PHP郵件)不(否則郵件工作完美)

+0

可能是一個網絡問題,可能是與Windows服務器的郵件問題,可能是接受附件的權限問題(取決於附件如何附加到您的代碼中的電子郵件)等等等等。你提供了一些更多的細節。它甚至可能是你正在發送郵件的人......例如,我們有一個電子郵件問題,並且它不是代碼/系統問題,但是listserv的管理員不允許我們的系統地址發送特定的郵件列表。有趣的是,你可以做多少次的調試和代碼審查,直到你意識到一秒鐘不是我們的問題。 – Chris 2011-04-20 18:31:47

回答

0

PHP實際上並不發送郵件本身。撥打mail只是傳遞給系統郵件。您使用sendmail或類似的東西在Linux機器上測試,但Windows郵件程序不同。測試確切的環境,你將能夠進行調試。

0

事實證明C:\ windows \ temp沒有IIS_IUSRS的讀寫權限。

所以,如果你遇到了這樣的問題:

  1. 導航到C:\ WINDOWS \ TEMP *
  2. 右鍵單擊它會拉起屬性。
  3. 導航到安全選項卡,並在(組或用戶名:)下單擊編輯。
  4. 下一屏幕上
  5. 如果IIS_IUSRS未列出單擊下一步屏幕上添加
  6. ,你會看到一個文本框,輸入IIS_IUSRS
  7. 現在你應該可以設置權限。
  8. 現在只需點擊安全選項卡下的iis_usrs並點擊閱讀&執行,讀取和寫入並設置爲允許。

*這在php.ini中設置,這是Windows下的臨時文件的默認設置,你的php.ini文件可能是不同的東西,所以仔細檢查以確保萬無一失。 你現在應該很好去。我希望我的回答可以幫助其他人。