2013-02-06 90 views
2

我想從我的PHP應用程序發送電子郵件。爲此,我在Windows服務器2008的IIS中設置了我的網站。我可以安裝Windows SMTP服務器。發送電子郵件帶有SMTP服務器的PHP到Windows Server 2008

然後我創建了一個測試頁,以發送電子郵件:

<?php 
    Ini_set ('SMTP', 'localhost'); 
    Ini_set ('sendmail_from', '[email protected]'); 

    $to = '[email protected]'; 
    $subject = 'Example subject'; 
    $body = 'body ... With an example'; 

    if(mail($to, $subject, $body)){ 
    echo "Successful"; 
    }else{ 
    echo "Error"; 
    } 
?> 

我還可以配置php.ini並SMTP電子郵件在IIS這樣的:

[Mail function] 
smtp = localhost 
smtp_port = 25 

然後我測試送我郵件。當我將電子郵件發送到本地域的電子郵件地址到本地域中的另一個電子郵件地址時。我回到我的頁面「成功」和電子郵件進入該文件夾中:

C:\inetpub\mailroot\Drop 

通過利弊,如果我發送一封電子郵件從本地域中的電子郵件地址的電子郵件地址向外部域(@ hotmail.com) 。我的頁面返回「錯誤」,沒有任何反應。

我看着我的SMTP服務器的日誌文件,但沒有錯誤信息。

你能幫我嗎?

+0

那麼SMTP服務器可能沒有配置爲中繼電子郵件的外部域。啓用'display_errors'設置並查看PHP是否報告了一些錯誤。 –

+0

如何配置繼電器? – Florent

回答

0

如果您的頁面返回錯誤(最可能是500),那麼您需要查看與SMTP錯誤日誌不同的PHP錯誤日誌。請讓我們知道您發現的內容,因爲在嘗試執行php郵件功能時遇到的任何錯誤都會顯示在這些日誌中。

+0

這是我說,如果mail()函數返回false,那麼它必須回顯「錯誤」。所以他只在我的頁面上顯示「錯誤」。 我也看到PHP錯誤日誌,但沒有錯誤。 – Florent

1

我成功推進了一步。現在,當我從本地域的電子郵件地址發送電子郵件到外部域(@ hotmail.com)的電子郵件地址時,郵件被髮送到我的PHP頁面,它在隊列中卡住C:\inetpub\mailroot\Queue

有誰知道這是什麼問題?

謝謝

相關問題