我是初学者,所以请指教。 事实:尝试使用梨的邮件并使其工作。我安装了梨,邮件和网络。我使用Apache 2.2.22,PHP 5.3.13,Windows 7.整个系统安装在我的笔记本电脑上。这有什么不同吗?另外,我不知道我的apache是否支持smtp。我使用this作为指导。
这是我的代码(尝试创建一个简单的“忘记密码”,未完成)
<?php
error_reporting(E_ALL);
//connect to db
include_once('connection.php');
include('Mail.php');
//came from login form
$logf = $_POST['logf'];
//query according to logf
$stmt = $dbh->prepare("SELECT mail FROM table where usrnm = :nm");
$stmt->bindParam(':nm', $nm, PDO::PARAM_STR);
$nm=$logf;
$data=array('nm'=>$nm);
$result=$stmt->execute($data);
$d=0;
while ($row = $stmt->fetch()) {
$be[$d]=$row['mail'];
$d++;}
$mes="ελα";
//mail came from query
$email = $be[0];
$message = $mes;
$from = 'Website Enquiry ';
$to = "Hammy Goonan ";
$subject = "ανακτηση";
$body = $message;
$host = "localhost";
$headers = array ('From' => $from,
'To' => $to,
'Subject' => $subject
);
$smtp = Mail::factory('smtp',
array ('host' => $host,
'auth' => false,
'port' => '25'
)
);
$mail = $smtp->send($to, $headers, $body);
if (PEAR::isError($mail)) {echo($mail->getMessage());}
else {echo("Message successfully sent!");}
?>
我收到此错误:
无法连接到localhost:25 [SMTP:无法连接套接字: , 。 (代码:-1,响应:)]
请求帮助,我已阅读教程,我不知道如何解决这个问题。实际上,我不知道从哪里开始。
感谢。
EDIT 我也试过使用sendmail的this(示例部分),但我不理解以下
$params['sendmail_path'] = '/usr/lib/sendmail';
Sendmail还需要smtp erver吗?
答案 0 :(得分:1)
如果您想使用localhost
作为邮件服务器的地址,localhost
必须安装邮件服务器。
您需要安装一个邮件服务器(有一些面向开发的服务器,如Devnull)或(通常更容易)只需将它指向您的ISP的SMTP服务器以进行发送。
答案 1 :(得分:1)
如果您要使用localhost
作为地址,则需要确保localhost
(您的笔记本电脑)已安装邮件服务器。
或者,您可以使用SendGrid等电子邮件发送服务并使用其SMTP服务器或另一个答案建议,将其指向您的ISP的SMTP服务器。