2009-10-31 109 views
0

我使用一個腳本,在向用戶發送電子郵件,我收到以下錯誤:如何找出本地主機的smtp_port?

警告:電子郵件()[function.mail]:無法連接在「localhost」的端口25的郵件服務器,驗證您的「SMTP」和「smtp_port」在php.ini中設置或者在第125行的C:\ wamp \ bin \ php \ php5.3.0 \ PEAR \ Mail \ mail.php中使用ini_set()

如何將圖出我的本地主機的stmp_port?

編輯:

對不起。我的電腦上沒有自己的服務器,我也不認爲我想要設置一臺服務器。我沒有意識到它需要什麼。我確實有一個託管服務提供商,並想弄清楚如何使用他們的smtp信息發送我的郵件,但如果有人知道如何做到這一點。

根據Nathan Adams的回覆,我可以使用我的託管服務提供商的smtp信息。我究竟需要什麼來確定我的信息放在我的php.ini文件中?

+0

如果你不知道它是什麼,那麼你沒有一個。 – 2009-10-31 02:44:06

回答

2

這不僅是你需要知道的端口。你必須知道你的smtp郵件服務器的地址是什麼。

基於SMTP的其他電子郵件配置。您至少需要4條信息:

  1. SMTP服務器例如mail.example.com
  2. SMTP端口[25和110是最常見的用途]
  3. 用戶名FOO @域名。com
  4. 密碼

代碼必須看起來像這樣。

$from = "Sandra Sender <[email protected]>"; 
$to = "Ramona Recipient <[email protected]>"; 
$subject = "Hi!"; 
$body = "Hi,\n\nHow are you?"; 

$host = "mail.example.com"; 
$username = "smtp_username"; 
$password = "smtp_password"; 

$headers = array ('From' => $from, 
    'To' => $to, 
    'Subject' => $subject); 
$smtp = Mail::factory('smtp', 
    array ('host' => $host, 
    'port' => 25 
    'auth' => true, 
    'username' => $username, 
    'password' => $password)); 

可能是您輕鬆通過您Gmail發送電子郵件帳戶 - see here

+0

謝謝你的好建議!我甚至沒有意識到這是一種選擇。如果我不能使用我的託管服務提供商,我會進一步研究。 – zeckdude 2009-10-31 02:54:27

1

您必須運行SMTP服務器,否則您需要將php.ini中的SMTP和smtp_port設置給其他人(您的ISP,您的託管服務提供商等)。

+0

我有一個託管服務提供商。我需要查看哪些內容以及我需要將哪些內容發佈到php.ini文件中? 在這裏? [郵件功能] ;僅適用於Win32。 ; http://php.net/smtp SMTP = localhost ; http://php.net/smtp-port smtp_port = 25 – zeckdude 2009-10-31 02:44:25

0

您是否安裝了smtp服務器?它運行嗎?不知道你在哪個平臺上,但在Windows上,你可以從命令行運行「netstat -a」並查找「LISTENING」狀態

0

如果你沒有監聽端口25的SMTP服務器,很可能你沒有運行SMTP服務器。只有在非常自定義的情況下,SMTP服務器才能配置爲在不同的端口上偵聽。

你原來的問題的答案是「它取決於」。這取決於您使用的SMTP軟件(在服務器端)。我不確定是否有簡單的解決方案來查看是否存在「某些」端口上運行的「某些」SMTP服務器。

0

如果您在本地主機上運行SMTP服務器,您必須已經安裝並配置(並且確實您選擇了一個端口!= 25 ...),所以只需閱讀您的配置文件以找出你安裝它運行!更有可能的是,如果你從來沒有聽說過它,你可能是而不是運行任何SMTP服務器,然後你的選擇是要麼這樣做(提示:使用端口25,如果你這樣做,讓你更容易!)找出一些其他SMTP服務器誰願意容納你並設置你的PHP配置指向那一個。

編輯:現在你已經在你的託管服務提供商的留言中提到,那麼你當然應該問你的供應商有什麼主機(可以是localhost,可能是別的東西)和端口(所有投注已關閉!)他們正在爲您提供SMTP服務。

0

有你的PHP腳本運行作爲匿名系統用戶非常好的機會,即「沒有人'或'www-data'。

許多主機限制從匿名用戶訪問端口25(本地)以防止濫用郵件程序。相反,您可能需要連接到您的實際域名並在發送郵件之前進行身份驗證。

即使用「mydomain.com」「25」而不是「localhost」,使用任何你喜歡的SMTP類。 mail()可能會無用。

仔細檢查您的主機以確認這一點,但我懷疑是這樣。