我有以下脚本:
<?php
include('Mail.php');
include('Mail/mime.php');
$recip = "me <[email protected]>";
$strSubject = "test subject";
$strMessage = "test message";
$crlf = "\n";
$headers = array('From' => $recip,
'Return-Path' => $recip,
'Subject' => $strSubject);
$mime = new Mail_mime($crlf);
$mime->setTXTBody($strMessage);
$body = $mime->get();
$headers = $mime->headers($headers);
$smtp_params["host"] = "localhost";
$smtp_params["port"] = "25";
$mail =& Mail::factory("smtp", $smtp_params);
//$mail =& Mail::factory('mail');
$confirmation = $mail->send($recip, $headers, $body);
if ($confirmation) echo "accepted";
else echo "not accepted";
?>
我在服务器上运行 postfix。脚本没有给出任何 php 错误,执行时 postfix 在日志中没有显示任何内容。当我切换工厂线(切换注释)时,脚本发送电子邮件,postfix 记录连接。我为 postfix 放置了默认的 master.cf 和 main.cf 文件,重新加载并重新启动。
我对服务器的电子邮件方面不是很熟悉。任何信息都很好。是否有任何与连接失败有关的错误消息存储在某处?我尝试了各种 $smtp_params 选项,但我只是在摸索。任何想法都将不胜感激。
答案1
在大多数安装了 postfix 的机器上,都有一个本地 sendmail 等效文件,除非您对 postfix 进行不同的配置,否则它将充当邮件的本地接收器,这意味着您不需要专门配置 postfix 来以这种方式接受邮件,只要您发送格式良好且带有必要标题的电子邮件即可。
基本上,如果是本地的,就不需要配置 pear,就好像邮件服务器在另一台机器上一样。
缺口