我当前的项目是一个接收用户输入的表单。 收到该数据后,我必须向几个电子邮件地址发送警告/报告,包括插入数据的用户。 几乎所有东西都已启动并运行,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发送邮件。
我在页面上没有输出错误,所以我有点迷路了。不知道出了什么问题。
更新:任何人都可以推荐一个好的邮件服务器吗?
答案 0 :(得分:0)
Exchange支持常规SMTP邮件传递(必须,否则它无法与电子邮件世界的其他部分通信),因此只需将您的PHP配置指向Exchange服务器,就像它是普通邮件服务器一样。
邮件有一些.ini设置,请在此处记录:http://php.net/manual/en/mail.configuration.php#ini.smtp
假设交换服务器不需要身份验证并接受来自您服务器的邮件,那就应该是必需的。
随访:
您是否阅读过Mail包中的文档? 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);
}
答案 1 :(得分: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扩展程序并不像您想象的那么难。
答案 2 :(得分:0)
确定。得到它的工作。 呼。
我在读完之后发现了原因。这是关于smtp交换服务器的中继问题。
但如果不适合你的话,我就永远不会到那里。的xD
谢谢大家。 =)