我收到错误消息为 无法连接到& quot,localhost& quot,port 25,...
的邮件服务器我的php.ini文件的内容是
SMTP = localhost
smtp_port = 25
我使用了以下代码
mail("xyz@gmail.com","test","msg","from abc@gmail.com");
答案 0 :(得分:2)
您无法从localhost发送出站邮件。要测试邮件功能,请安装汞邮件。它应该与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或任何PHP电子邮件类(如PHPMailer),您甚至可以执行更多操作 在phpclasses.org中搜索电子邮件类。一个例子是: 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
答案 1 :(得分:1)
很明显,端口25上的本地主机上没有运行邮件服务器(或防火墙阻止它)。获取并安装一个邮件服务器(windows / linux / mac有许多免费的 - 只需确保你的ISP允许它),你的脚本就可以运行了。
我用它进行测试非常好:http://smtp4dev.codeplex.com/ 它是一个虚假的电子邮件服务器,拦截邮件并转储它们,供您检查和测试localhost。