配置邮件服务器以使用PHP

配置邮件服务器以使用PHP,php,mysql,apache,exchange-server-2007,Php,Mysql,Apache,Exchange Server 2007,我当前的项目是接收用户输入的表单。 收到数据后,我必须向几个电子邮件地址发送警告/报告,包括插入数据的用户。 Apache、MySQL、PHP,几乎所有东西都已启动并运行 现在我从来没有安装过邮件服务器来使用PHP,所以我有点迷路了 我的雇主在他的服务器上安装了MS Exchange 2007。我应该使用它吗?我将如何开始配置php来使用它?我需要从Exchange 2007参数中获得什么 如果没有,您是否建议在具有Apache+MySQL+PHP的同一台机器上安装一个新的邮件服务器 我更倾向于

我当前的项目是接收用户输入的表单。 收到数据后,我必须向几个电子邮件地址发送警告/报告,包括插入数据的用户。 Apache、MySQL、PHP,几乎所有东西都已启动并运行

现在我从来没有安装过邮件服务器来使用PHP,所以我有点迷路了

我的雇主在他的服务器上安装了MS Exchange 2007。我应该使用它吗?我将如何开始配置php来使用它?我需要从Exchange 2007参数中获得什么

如果没有,您是否建议在具有Apache+MySQL+PHP的同一台机器上安装一个新的邮件服务器

我更倾向于使用已经存在的Exchange服务器,但我在一些在线文章中读到,它不是最容易配置的

更新:

<?php
include("Mail/Mail.php");
/* mail setup recipients, subject etc */
$recipients = "mail@mail.com";
$headers["From"] = "mail@mail.com";
$headers["To"] = "someone@mail.com";
$headers["Subject"] = "User feedback";
$mailmsg = "Hello, This is a test.";
/* SMTP server name, port, user/passwd */
$smtpinfo["host"] = "mail.name.com";
$smtpinfo["port"] = "25";
$smtpinfo["auth"] = true;
$smtpinfo["username"] = "username";
$smtpinfo["password"] = "pass";
/* Create the mail object using the Mail::factory method */
$mail_object =& Mail::factory("smtp", $smtpinfo);
/* Ok send mail */
$mail_object->send($recipients, $headers, $mailmsg);
?>
使用上面的示例,我无法通过Exchange2007发送邮件

我在页面上没有错误输出,所以我有点迷路了。不知道怎么了


更新:有人能推荐一个好的邮件服务器吗?

Exchange必须支持常规SMTP邮件传递,否则它无法与电子邮件世界的其他部分通信,所以只需将PHP的配置指向Exchange服务器,就好像它是一个常规邮件服务器一样

邮件有一些.ini设置,记录如下:

假设exchange服务器不需要身份验证,并且将接受来自您服务器的邮件,那么就只需要这些了

后续行动:

你看过邮包上的文件了吗?send方法在成功时返回TRUE,或在失败时返回PEAR\u Error对象。它将包含有关发送尝试失败的任何详细信息,很可能您想要$PEAR\u Error:message。详细信息如下:。从更改代码

$mail_object->send($recipients, $headers, $mailmsg);


很可能您需要身份验证。这可能很简单,只需向您想要发送的电子邮件帐户提供用户名和密码即可

如果是这样的话,我建议你使用PEAR邮件分机。有一个名为factory的函数,允许您使用smtp服务器进行身份验证。包括SSL加密,如果您发现您的服务器需要它

您的代码看起来有点像这样:

$smtp = Mail::factory('smtp',
  array ('host' => $host,
   'port' => $port,
   'auth' => true,
   'username' => $username,
   'password' => $password));

$mail = $smtp->send($to, $headers, $body);
在服务器上安装PEAR扩展并不像您想象的那么难。

好的。让它发挥作用。 呸

我读了很多书才发现原因。这是关于smtp exchange服务器的中继问题

但要不是你们,我永远也到不了那里。xD


谢谢大家=

你提到认证是什么意思?在正常情况下不应该这样做吗?有些邮件服务器在与您有任何关系之前必须登录。例如,大多数邮件服务器不允许从自己的网络外部通过它们发送邮件,但如果您对其进行身份验证,则可以证明您是本地用户。如果您无法使用PEAR软件包,您可以尝试PHPMailer:简单、免费且运行良好。我正在使用PHPMailer。谢谢你的提示。我现在正在网上搜寻PEAR以及如何安装它。稍后将答复结果:真倒霉看起来php_phar.dll应该出现在ext目录中,但在我的例子中不是。我在尝试安装pear时遇到各种各样的错误s
$smtp = Mail::factory('smtp',
  array ('host' => $host,
   'port' => $port,
   'auth' => true,
   'username' => $username,
   'password' => $password));

$mail = $smtp->send($to, $headers, $body);