我收到错误消息,因为无法在“本地主机”端口 25 连接到邮件服务器,...
我的 php.ini 文件的内容是
SMTP = localhost
smtp_port = 25
我使用了以下代码
mail("xyz@gmail.com","test","msg","from abc@gmail.com");
您不能从本地主机发送出站邮件。要测试邮件功能,请安装水星邮件。它应该带有 xampp。为 localhost 域创建电子邮件,例如steward@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
很明显,在 localhost 的 25 端口上没有运行邮件服务器(或者防火墙阻止了它)。获取并安装一个邮件服务器(windows/linux/mac 有许多免费的——只要确保你的 ISP 允许它),你的脚本就会运行得很好。
我用它来测试,这非常好:http ://smtp4dev.codeplex.com/ 它是一个假的电子邮件服务器,它拦截邮件并将它们转储给你在本地主机上检查和测试。