簡體   English   中英

為什么mail()PHP函數不適用於WAMP默認安裝?

[英]Why mail() PHP function does not work with WAMP default installation?

我有WAMP Server 2.0的默認安裝。

我正在嘗試使用以下簡單腳本發送電子郵件:

<?php

if (mail('my_email@gmail.com', 'My Title', 'Some Text')) {
    echo "OK";
} else {
    echo "Why ??";
}

?>

不幸的是,我收到以下警告:

警告:mail()[function.mail]:無法通過“ localhost”端口25連接到郵件服務器,無法驗證php.ini中的“ SMTP”和“ smtp_port”設置,或在C:\\ My_Path \\ send_email中使用ini_set()。第3行的php為什么??

可能是什么原因呢?

我希望發送電子郵件是一個非常簡單的任務... :(

為了能夠發送電子郵件,您需要一個外發電子郵件服務器(MTA)。 在大多數Linux系統中,默認情況下存在一個,PHP將通過將郵件提交到sendmail來使用它,這是一個Linux應用程序/別名,用於將郵件提交到您已安裝的任何MTA。

Windows默認不包含MTA。 在Windows中,要能夠從PHP發送郵件,您需要有權訪問某些傳出電子郵件服務器,並告知PHP地址和端口。 這是使用SMTPsmtp_port設置在php.ini中完成的。 在端口25上它將默認為localhost 除非您自己在該計算機上設置了郵件服務器,否則此操作將失敗。

例如,如果您的ISP為您提供了傳出郵件服務器,則可以使用其地址和端口號。 或者,如果您對發送郵件很認真,則可以在本地計算機上或本地網絡中的某個地方設置自己的郵件服務器。

簡短答案:沒有為本地計算機(localhost)配置SMTP服務器。 Windows沒有附帶內置的SMTP服務器,可以立即使用。 您可以通過其他主機(使用SMTP php.ini偽指令)中繼郵件-但是很少會找到用於測試環境郵件的開放中繼。

除了使用mail() ,您還可以使用PHPMailer之類的腳本,該腳本可以通過正確的身份驗證直接連接到外發電子郵件服務器。 這是Gmail快速摘要 (盡管還不完整)和完整示例

您可以使用“假Sendmail”: http : //glob.com.au/sendmail/

因此,您在測試計算機上不需要smtp服務器,只需在php.ini中設置程序的路徑

再見! 斯特凡

暫無
暫無

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

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