1

我当前的项目是一个接收用户输入的表单。收到该数据后,我必须向几个电子邮件地址发送警告/报告,包括插入数据的用户。几乎所有东西都启动并运行,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);
?>

使用上面的这个示例,我无法通过 Exchange 2007 发送邮件。

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

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

4

3 回答 3

0

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

有一些邮件的 .ini 设置,记录在这里: http: //php.net/manual/en/mail.configuration.php#ini.smtp

假设交换服务器不需要身份验证并且会接受来自您服务器的邮件,这就是所有应该要求的。

跟进:

你读过邮件包上的文档吗?该send()方法在成功时返回 TRUE,或PEAR_Error在失败时返回对象。它将包含有关发送尝试失败的任何详细信息,很可能是您想要的$PEAR_Error:message。完整的细节在这里: http: //pear.php.net/package/PEAR/docs/1.9.1/PEAR/PEAR_Error.html。更改您的代码

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

$status = $mail_object->send($recipients, $headers, $mailmsg);
if ($status !== TRUE) {
    die("Error sending mail: " . $status::message);
}
于 2010-09-07T17:15:50.907 回答
0

您很可能需要身份验证。这可以简单到将您的用户名和密码提供给您要发送的电子邮件帐户。

如果是这种情况,我建议您使用 PEAR Mail 扩展。有一个名为 factory 的函数,允许您使用 smtp 服务器进行身份验证。(包括 SSL 加密,如果您发现您的服务器需要它)

http://pear.php.net/manual/en/package.mail.mail.factory.php

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

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

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

在您的服务器上安装 PEAR 扩展并不像您想象的那么难。

于 2010-09-08T16:02:38.093 回答
0

行。让它工作。呸。

查了很多资料才知道原因。这是关于 smtp 交换服务器的中继问题。

但如果不是你们这些人,我永远也不会到达那里。xD

谢谢你们。=)

于 2010-09-09T21:09:04.737 回答