簡體   English   中英

無法通過“localhost”端口 25 連接到郵件服務器

[英]Failed to connect to mailserver at "localhost" port 25

當我嘗試用 PHP 發送電子郵件時,我不斷收到此錯誤:

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\dressoholic\register.php on line 50

我的 php.ini 看起來像這樣:

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = you@yoursite.com

我使用我的筆記本電腦作為服務器..我做錯了什么? 謝謝。

您需要在本地運行郵件服務器。 如果是 Unix,則啟用 sendmail 如果是 Windows,請安裝 IIs 的 Simple Mail Transfer Server(不確定名稱是否正確)組件。 例如,對於 Windows 2003,請按照以下步驟操作: http : //msdn.microsoft.com/en-us/library/8b83ac7t.aspx

使用 php 郵件功能發送郵件。 但是郵件功能需要 SMTP 服務器來發送電子郵件。 我們需要在 php.ini 文件中提及 SMTP 主機和 SMTP 端口。 成功配置 SMTP 服務器后,郵件將通過 php 腳本成功發送。

在 Windows 上,幾乎所有的 AMPP(Apache、MySQL、PHP、PHPmyAdmin)包都不包含郵件服務器(但幾乎所有裸 linux 都有!)。 所以,在windows下使用PHP時,需要設置一個郵件服務器!

我最好和最簡單的工具是這個: http : //smtp4dev.codeplex.com/

SMTP4Dev 是一個簡單的單文件郵件服務器工具,它確實收集它發送的郵件(因此它並不真正發送郵件,它只是保留它們以供開發)。 完美的工具。

如果您僅在本地主機上運行您的應用程序並且它尚未上線,我相信使用它發送郵件是非常困難的。

一旦你把你的應用程序放到網上,我相信這個問題應該會自動解決。 但我認為ini_set()可以幫助您在運行時更改php.ini中的值。

首先,您不會被迫在本地主機上使用 SMTP,如果您將本地主機條目更改為來自您的 ISP 提供商(誰會讓您中繼郵件)的 MTA 的 DNS 名稱,它將立即工作,所以沒有搞亂你自己的電子郵件服務。 只需嘗試使用您的提供商的 SMTP 服務器,它就會立即工作。

PHP 郵件功能可以在 2 種情況下發送電子郵件:

一個。 嘗試通過 unix sendmail程序發送電子郵件在 linux 中,它將執行程序“sendmail”,將所有參數都放到 sendmail 中。

或者

連接到郵件服務器(使用 smtp 協議和來自 php.ini 的主機/端口/用戶名/pass)並嘗試發送電子郵件。

如果 php 無法連接到電子郵件服務器,它將發出警告(並且您在日志中看到此類工作)要解決它,請在本地計算機上安裝 smtp 服務器或使用任何可用的服務器。 如何設置/配置 smtp,您可以在 php.net 上找到

將 SMTP=localhost 更改為 SMTP=smtp.gmail.com

php不允許或認為從本地主機發送電子郵件非常困難,但是如果將項目上傳到服務器,則可以解決此問題。 如果要檢查本地服務器上是否發送了電子郵件,則必須下載smtp4dev並安裝並運行它。 如果您的電子郵件發送成功或代碼有問題,這會給您一條消息。

暫無
暫無

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

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