[英]Getting error while trying to send mail in php
我收到錯誤消息,因為無法連接到“ localhost”端口25的郵件服務器...
我的php.ini文件的內容是
SMTP = localhost
smtp_port = 25
我用下面的代碼
mail("xyz@gmail.com","test","msg","from abc@gmail.com");
您不能從本地主機發送出站郵件。 要測試郵件功能,請安裝水銀郵件。 它應該隨xampp一起提供。 為steward @ localhost之類的localhost域創建電子郵件。 您可以使用別名。 通過將郵件從一個收件箱發送到另一個收件箱來進行測試。 您需要汞郵件的許可版本才能發送出站郵件。
另一個選擇是在遠程服務器上運行測試。 確保發件人的電子郵件被發送服務器識別。 就像您無法使用顯示的設置發送gmail消息一樣。
如果從gmail發送是您的目標,那么stackoverflow已經充滿了有關如何使用gmail發送郵件的答案,即使使用codeigniter也是如此。 需要一些?
這是您的要求:使用gmail發送郵件:
require_once "Mail.php";
$from = "<from.gmail.com>";
$to = "<to.yahoo.com>";
$subject = "Hi!";
$body = "Hi,\n\nHow are you?";
$host = "ssl://smtp.gmail.com";
$port = "465";
$username = "myaccount@gmail.com"; //<> give errors
$password = "password";
$headers = array ('From' => $from,
'To' => $to,
'Subject' => $subject);
$smtp = Mail::factory('smtp',
array ('host' => $host,
'port' => $port,
'auth' => true,
'username' => $username,
'password' => $password));
$mail = $smtp->send($to, $headers, $body);
if (PEAR::isError($mail)) {
echo("<p>" . $mail->getMessage() . "</p>");
} else {
echo("<p>Message successfully sent!</p>");
}
?> <!-- end of php tag-->
在這里獲取信息: https : //stackoverflow.com/a/2748837/827224
如果您正在使用codeigniter或phpclasses.org中的任何PHP電子郵件類(如PHPMailer搜索電子郵件類),甚至可以做更多的事情。 一個示例是: http : //www.phpclasses.org/blog/package/9/post/1-Sending-email-using-SMTP-servers-of-Gmail-Hotmail-or-Yahoo-with-PHP.html
http://www.phpclasses.org/package/7834-PHP-Send-e-mail-messages-Gmail-users-via-SMTP.html
很明顯,在本地主機的端口25上沒有運行郵件服務器(或者防火牆阻止了它)。 獲取並安裝一個郵件服務器(對於Windows / linux / mac,有很多免費的-只需確保您的ISP允許它即可),您的腳本就可以正常運行。
我將其用於測試,這非常不錯: http : //smtp4dev.codeplex.com/它是一個偽造的電子郵件服務器,它攔截郵件並將其轉儲以供您在localhost上進行檢查和測試。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.