Joomla!吧

Tuesday, May 22nd

Last update12:39:59 AM GMT

You are here: Joomla教程 >> Joomla使用教程 >> 如何启用 XAMPP 自带的邮件服务器

如何启用 XAMPP 自带的邮件服务器

本文转载自www.joomlagate.com  作者:白建鹏

首先,解释一下 XAMPP 本地安装 Joomla 之后为什么“注册会员时收不到激活邮件”?

 原因很简单:XAMPP 服务器启动之后,默认并没有启动其自带的 Mercury 邮件服务器。而 Joomla 后台的默认设置是要使用本地的邮件服务器的,这个服务器根本没启动,你怎么能发出邮件去?

还有些用户可能是通过 Control Panel 来启动了 XAMPP,在这个控制面板上就有 Mercury 邮件服务器的按钮,他也点了“Start”按钮启动了邮件服务器,还是发不出激活邮件,为什么?

原因也很简单:XAMPP 默认的设置是无法让 Mercury 邮件服务器直接发送出邮件的。必须对它进行一点设置。具体步骤如下:

0、测试环境介绍

我进行下列操作的环境是:Windows XP sp3 + XAMPP 1.7.0 + Joomla 1.5.12

其中,XAMPP 安装位置是:D:\xampp\。如果你的安装位置不同,请注意做好相应的调整。

1、启动 Mercury 邮件服务器

XAMPP 自带的邮件服务器名称是 Mercury。架设你已经启动了 Apache 和 MySQL,现在点击 XAMPP 根目录下的 mercury_start.bat 就能直接启动邮件服务器;或者,你通过上面提到的 Control Panel 也能启动 Mercury 邮件服务器。

Start Mercury Mail Server
Start Mercury Mail Server

2、发送测试邮件

就这么一步,Mercury 邮件服务器已经运行起来并且能够发送邮件了。不过,只能通过 Mercury 本身来发送。我们先测试一下这个功能。

在 Mercury 主面板上点击顶部菜单“File -> Send mail message”,就会弹出一个简单的邮件撰写窗口,填写你自己的正规信箱作为收件人,随便编造一个主题和正文,点击“Send”发送出去。我是用 Gmail 的信箱来测试的,大概2分钟就收到了。看下面两个截图:

Send test mail on Mercury

Mercury test mail received
Mercury test mail received

但是,这个时候如果你使用前面介绍的 SMTP 帐号来尝试设置 Joomla 后台邮件设置,或者尝试用 Outlook Express 借助这个 SMTP 来发送邮件,都会失败。Joomla 的错误消息没有提供什么有价值的参考,而 OE 会提示你:

553 We do not relay non-local mail, sorry

下面我们来解决这个问题,其实只是一个小小的设置而已:

3、设置 Mercury 邮件服务器及默认帐号的密码

点击 Mercury 顶部菜单的“Configuration -> MercuryS SMTP Server” ,在弹出的对话框上点击“Connection control”标签页,去掉“Do not permit SMTP relaying of non-local mail”这一项的勾选,然后点击“确定”。

Mercury SMTP server settings
Mercury SMTP server settings

去掉上面一项之后,就可以向外发送邮件了。不过,Mercury 的默认帐号是没有密码的,必须设置一个密码才能连接 SMTP 服务器。为了方便记忆,我们这个测试帐号的密码就设为与用户名相同吧:都是 postmaster。

如下图操作:点击 Mercury 主面板顶部菜单上“Configuration -> Manage local users”,在弹出的对话框上选定 postmaster 这个用户,点击右边的“Change”按钮,然后在弹出的对话框中“Mail password”这里填写 postmaster,点击“OK”即可。

Mercury SMTP account password
Mercury SMTP account password

经过这两点设置,Mercury 邮件服务器就完全可以用来向外发送邮件了。接下来你要在 Joomla 后台设置这个 SMTP 帐号:

4、在 Joomla 中使用 Mercury 的 SMTP 服务器

以管理员身份登录到 Joomla 1.5.x 后台,点击控制面板上的“全局设置”,进入“服务器”标签页,在“邮件设置”这里按下图所示填写:

Joomla use Mercury SMTP server
Joomla use Mercury SMTP server

首先选择“SMTP 服务器”模式。寄件人地址填写 postmaster@localhost 。由于 Mercury 的 SMTP 服务器默认不需要验证,所以在“SMTP 认证”这里选择“否”。用户名和密码都是 postmaster,主机就是 SMTP 服务器的地址,这里填写“localhost”,端口是默认的 25。

如果你需要在 Outlook Express 里面利用这个本地的 Mercury 邮件服务器来收发邮件,也可以按照上述参数来设置。POP3 服务器的地址仍然是 localhost,端口是 110。

到现在就大功告成了。你保存全局设置之后,可以在前台分别测试一下注册新会员和通过联系人表单发送邮件,应该能收到了。

最后提醒一下:有人可能还想玩玩“邮件设置”里面的 Sendmail 模式,这几乎没什么意义。

Sendmail 本来是 Linux 平台的程序,在 XAMPP for Windows 里面,也有一个 sendmail.exe 文件,这只能算是“伪 sendmail”(fake Sendmail),而不是真正的 sendmail。

之所以说它是“伪 sendmail”,是因为在 Windows 平台上,这个 sendmail.exe 实际上是通过 SMTP 服务器来发送邮件的,而不是靠它本身。也就是说,如果你想玩 sendmail,那么还必须按照上面所说的设置,完全调整好 Mercury 的 SMTP 服务器,现在选择 Sendmail 模式就能正常工作了。但这有什么意义呢?还不如直接用 SMTP 参数来发送。

发表评论


验证码
刷新