邮件功能不会发送电子邮件。错误

时间:2013-06-30 16:18:36

标签: php email

我想我现在试图解决这个问题3天了,似乎无法找到问题所在。

我使用XAMPP并使用此代码:

<?php

$to = "carl.j.97@live.com";
$subject = "Test mail";
$message = "Hello! This is a simple email message.";
$from = "carl.j.97@live.com";
$headers = "From: $from";
$res= mail($to,$subject,$message,$headers);
echo " $res Mail Sent.";
?>

当我进入该页面时,我收到一条错误消息:

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(

我在xampp中的php.init文件如下:

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

这就是我的所有代码。

3 个答案:

答案 0 :(得分:0)

在生产服务器中运行此脚本。除非在本地安装SMTP服务器,否则无法从localhost发送电子邮件。

答案 1 :(得分:0)

如果您在本地主机上运行的XAMPP或其他程序上运行此功能,请在Google上搜索获取电子邮件服务所需的设置。您需要编辑一些文件并更改一些端口/客户端名称。

编辑: 你只需要修改2个ini文件:php.ini和sendmail.ini

1)在php.ini中查找邮件功能(c:/xampp/php/php.ini)&gt;&gt; [邮件功能]

更改以下内容::

SMTP=smtp.gmail.com

smtp_port=587


sendmail_from = from@gmail.com

sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"

注意:确保为sendmail_oath指定的路径有效。在我的情况下,它在C中。 保存您的更改。

2)接下来修改sendmail.ini(c:/xampp/sendmail/sendmail.ini) 评论汞如下所示

# Mercury
#account Mercury
#host localhost
#from postmaster@localhost
#auth off

# A freemail service example
#account Hotmail
#tls on
#tls_certcheck off
#host smtp.live.com
#from [exampleuser]@hotmail.com
#auth on
#user [exampleuser]@hotmail.com
#password [examplepassword]

然后粘贴以下行:

account Gmail
tls on
tls_certcheck off
host smtp.gmail.com
from x@gmail.com
auth on
user x@gmail.com
password x

port 587

# Set a default account
account default : Gmail

再次保存您的更改。

使用以下代码测试它是否正常工作!

<?php
$subject="Test mail";
$to="someone@whatever.com";
$body="This is a test mail";
if (mail($to,$subject,$body))
echo "Mail sent successfully!";
else
echo"Mail not sent!";
?>

请注意,在上述配置中,发件人应使用gmail电子邮件服务,对于收件人,任何电子邮件服务都会这样做。

答案 2 :(得分:0)

  1. 您确定编辑过正确的php.ini文件吗?

  2. 编辑php.ini后重启Apache服务器了吗?