簡體   English   中英

php mail()函數和IIS

[英]php mail() function and IIS

我已經用PHP編寫了一個網站。 我們的客戶將站點部署到IIS。 他們安裝了PHP 5.2,但mail()函數在其服務器上不起作用。

他們在www文件夾中添加了此配置文件:

web.config:

<configuration>
    <system.webServer>
        <handlers>
            <remove name="PHP- fastcgi" />
            <add name="PHP - FastCGI" path="*.php" verb="*" 
                 modules="FastCgiModule" 
                 scriptProcessor="C:\Php\php-cgi.exe" resourceType="Unspecified" />
        </handlers>
        <defaultDocument>
            <files>
                <add value="default.php" />
                <add value="index.php" />
            </files>
        </defaultDocument>
    </system.webServer>
</configuration>

mail()函數生成以下錯誤:

server error - 500 - Internal server error.
There is a problem with the resource you are looking for, and it cannot be displayed.

我知道必須有一個簡單的解決方案,即編輯php.ini文件。 但是負責人說,他們無法編輯php.ini ,我們必須使用ASP對聯系頁面進行編碼。

在這種情況下,有什么方法可以使用php發送郵件嗎?

Windows上的PHP 5.2中的mail()函數中存在一個長期存在的錯誤:

錯誤#28038將不正確的RCPT TO命令發送到SMTP服務器

mail()函數錯誤地分析了From:頭,並且行為表現最佳的RFC兼容郵件服務器將拒絕它為無效地址。

現在,此問題已在PHP 5.2.11+中修復(我已經在PHP 5.2.14,PHP 5.2.17和PHP 5.3.6中對此進行了測試)。 因此,我將找出您的應用程序在其下運行的PHP 5.2.x的確切版本,並查看它是否受此錯誤影響。

但是,我建議改用SwiftMailer 您可以對諸如配置外發郵件服務器,身份驗證之類的東西進行更多控制,並且它不依賴於使用內置的mail()函數。 我們有幾個客戶在我們的共享托管平台上使用它,他們對此感到非常滿意。

您可以嘗試並設置選項

ini_set()

功能

ini_set參考

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM