不论是 Joomla! 1.5 还是 Joomla! 1.6,在安装之后,都默认已设定使用 PHP Mail 功能来发送激活/通知邮件。在“邮件设置”那里,还有两个选项就是:Send Mail 和 SMTP。在大多数情况下,PHP Mail 能够满足需要,因此也很少有人专门关注这个问题。

不过,有时候偶尔会出现用 PHP Mail 或 Send Mail  发送不出邮件的情况。这可能是由于某些邮件服务器会把这两种方式发出的邮件认定为垃圾邮件而拒收。例如,本站一直使用 PHP Mail 发送注册后的激活邮件,发件人信箱填写的是 Gmail 的帐号,但是 Hotmail 服务器认为 Gmail 的邮件应该由 Gmail 服务器发出,而不应该从 PHP Mail 发过来,因此统统拒绝。这就造成了很多人填写 Hotmail 帐号来注册本站会员时没有收到激活邮件的尴尬局面。

如果你的网站拥有自己的 SMTP 邮件服务器(例如 Hawkhost 空间就提供 SMTP 功能),那么你可以使用 SMTP 方式来发送系统邮件。不过,国内的空间大都没有提供 SMTP 服务。这一类站长也不要担心,你还有一个选择:使用 Gmail 的免费 SMTP 服务!

使用 Gmail 的 SMTP 参数来设置 Joomla! 的“邮件设置”并不复杂,但是很多人都不能顺利发出邮件,在 Joomla!之门 的论坛上有很多人反复对此提问,因此今天撰文详细介绍一下。

(注:本文的早期版本推荐的是 gmail-smtp-in.l.google.com 这个 SMTP 服务器,那个方法已经失效。本文于 2011年5月8日重新修订,介绍新的 Gmail 参数设置方式)。

 

Mail settings on Joomla! 1.5

 

为什么要用激活邮件?

因为网站可能要发送某些通知给会员,如果不要求激活,就无法验证会员在注册时填写的信箱是否属实。这个世界上还确实存在一批比较变态的人,注册时就是要填写假的信箱,这样网站就无法将重要通知送达这些会员。如果是论坛,那么一般在有回复帖子时,都要发送通知邮件给前面发帖的人,让他们来阅读回帖。如果信箱是假的,怎么能通知到?还有会员之间的联络,有时候也需要发送 e-mail。

因此,要求会员在注册时提供有效 e-mail 是非常重要的,而确定电邮地址是否有效的最佳手段就是发送激活邮件。只有当会员点击激活邮件中的激活链接之后,才能完成注册。如果他提供的信箱是假的,那么就永远收不到激活邮件。

为什么要用 SMTP 发送激活邮件?

前面说了,PHP Mail 和 Send Mail 也能发送邮件,但是有时候会被拒绝。因此建议使用 SMTP 方式。现在大多数 SMTP 服务器都要要求发送者进行身份认证(SMTP Authentication),这样发出去的邮件中就包含了认证信息,接收方的服务器就认为这封邮件的发件人身份比较可靠,就乐于接受邮件。这就好比在淘宝网上商店的实名认证一样,多了一种认证,就提高了一些可信度。

为什么要用 Gmail 的 SMTP 服务器?

一般的网站都不会自己建 SMTP 服务器,毕竟有些麻烦。而且也不是随便建一个 SMTP 服务器就能得到其它邮件服务器的认可。例如:你购买的网站空间是与其它网站共享一个 IP 地址(动态 IP),这样即使你建一个 SMTP 服务器,也很容易被其它邮件服务器认为不可靠。这就好比一个没有自己办公地点的公司,与拥有大面积厂房或者写字楼的公司相比,哪个更可靠?这种动态 IP 的 SMTP 服务器很容易被认为是“垃圾邮件发送者”。例如,spamhaus.org 这个网站就很容易将你的 SMTP “私服”列入黑名单,很多邮件服务器会到这个名单上核对,如果发现来信的 IP 已列入 spamhaus 黑名单,你的邮件就会被拒收。

举例来说,与你共享 IP 的其它某个网站自己建了 SMTP 服务器,发送了恶意邮件,被接收方标记为“垃圾邮件”并提交给 spamhaus,那么这个 IP 上所有的网站都受牵连。你建的 SMTP 服务器一样被拒绝,因为 spamhaus 名单上只写 IP 。

因此,我建议使用其它免费邮件商提供的 SMTP 服务。在这么多免费邮件中,我推荐使用 Gmail 的 SMTP 服务。

Gmail 帐号不仅是一个邮件帐号,它更是“Google 帐号”。拥有了 Gmail 帐号,就能登录Google 的网站流量分析系统、Google Group、Gtalk 即时通讯工具、Google Code、Google Calendar 等等在线服务。你就相当于拥有了一个使用范围很广的 Passport 通行证。

单就邮件功能来说,Gmail 也是非常不错的。默认 6GB 空间,强大的邮件搜索功能,使得你几乎不用删除邮件。同一主题的邮件往来以会话(Thread)形式叠联显示,也是一大创举。它还提供了免费的 POP3 和 SMTP 服务,方便用户通过 Outlook Express 等邮件客户端软件收发邮件。

我认为 Gmail 邮件帐号就是想要建站的网管应该必备的,这一点我在《安装Joomla之前的准备工作》一文中也提到了。在此也顺便提一下 Hotmail,以前 hotmail 也是允许通过 OE 来收发邮件(IMAP),后来竟然取消了!也就是说,Hotmail 根本没有免费 SMTP 服务了。我就是在那时抛弃了 hotmail 转用 Gmail 。

怎样设置 Gmail 的 SMTP ?

新注册的 Gmail 信箱已经默认开启了 POP3(收信) 和 SMTP(发信) 服务,因此你无须登录到 gmail 的 Web 界面去再次开启。也就是说,只要你拥有了一个 Gmail 信箱,你就自动拥有了一个免费的 SMTP 服务器。

Gmail 官方网站已经提供了 在 Outlook 中使用 gmail SMTP 发信的设置方法,既然这些参数可以让 Outlook 发出 gmail 邮件,那么这些参数同样也能让 Joomla! 成功发出邮件。

要特别提醒的一点是: Gmail 的 SMTP 认证是通过 SSL 协议访问的,而早期的 Joomla! 1.5 核心在“邮件设置”参数那里没有“SMTP 安全”的选项(曾经有人开发过一个 Gmail SSL 补丁来解决这个问题),如本文开头的截图所示。现在最新的 Joomla! 1.5 核心已经拥有了 SSL 验证选项,就不需要该补丁了。

根据 Gmail 官方给出的 SMTP 设置参数,在 Joomla! 1.5 后台的“邮件设置”那里,应该这么填写:

邮件模式:SMTP服务器

寄件人地址:这个 E-mail 受反垃圾邮件程序保护,您需要启用 JavaScript 才能查看。

发件人名称:某某网站(论坛)

发送邮件路径:(此项在 SMTP 模式下无意义,不用管)

SMTP 认证:是

SMTP 安全:SSL

SMTP 端口:465

SMTP 用户名:这个 E-mail 受反垃圾邮件程序保护,您需要启用 JavaScript 才能查看。

SMTP 密码:**********

SMTP 主机:smtp.gmail.com

 

最终的结果应该类似下图(注意信箱账号不同而已):

Joomla! 1.5 “邮件设置”中的 Gmail 设置方法
Joomla! 1.5 “邮件设置”中的 Gmail 设置方法

 

上述设置,已在 XAMPP 搭建的本地测试服务器上测试成功!(如果你测试时 Joomla! 前台提示“PHPMAILER_RECIPIENTS_FAILED”错误,不要理会,你检查一下新注册的信箱就会发现已经收到了激活邮件)

另外注意:在“SMTP 用户名”这里,必须填写完整的邮件地址,而不只是 @ 符号前面的部分;“密码”当然填写你自己的信箱密码。

如果你的网站开通了 Gmail 提供的“企业邮局”服务,那么 SMTP 用户名那里也要填写完整的 e-mail 地址(这时 @ 后面的部分应该是你的企业信箱域名)作为认证帐号。

Gmail 的 SMTP 邮件限量

为了防止有人利用 Gmail 的免费 SMTP 服务发送大量垃圾邮件,Gmail 规定:每个帐号通过 SMTP 每天只能发给 100 个收件人(注意:不是 100 封邮件,这个限制更严格),超过这个数量就被封号24小时;如果你登录到 Gmail 的 web 界面,则每天可以发给 500 个收件人,超过这个数量也会被封号 24 小时。

如果你的网站注册人数很多,或者论坛发帖量很大,则每天发送的激活/通知邮件很容易超过 100 封,这就违反了 Gmail 的规定,会被停用帐号 24 小时 —— 本站曾经历过一次这样的处罚。

这样来说,Gmail 的 SMTP 不能用在大型网站。如果你的网站每天发送的激活/通知邮件不超过 100,我推荐使用 Gmail SMTP;如果超过这个数量(例如每周向超过1万名会员发送电子报),就需要寻找其它不限量的 SMTP(例如 TMDhosting 虚拟主机 提供不限量的 SMTP 发信服务器),或者自己搭建一个 SMTP  —— 大型网站都会这么做。

自己搭建 SMTP 服务器

本站论坛最近人气逐渐增加,每天的激活、通知邮件也很多,Gmail 的 SMTP 已经不够用了。因此 Tiger 就搭建了一个 SMTP 服务器,用的是 Postfix for FreeBSD 程序。在测试时发现两个问题,就是下面提醒里面的,目前都已经解决。

自己搭建 SMTP 服务器的好处是:没有信件限量,或者说作为 Postmaster 你有完全的权限控制限量多少。另外,速度也很快,如果你没有开设大量帐号的话。

借助开源的 ExtMail 软件,你还可以给你的邮件服务器创建 Web 界面,这样你就得到一个名副其实的电子邮局了。如果你想给会员权限来注册免费电邮都可以。

最后提醒一下:

1、如果你自己搭建的 SMTP 发送邮件时发现被拒收,很可能是因为被 spamhaus.org 列入黑名单,你可以到他们网站进行搜索。如果证实被误判为垃圾邮件发送源,就可以申诉,请求解除封锁。已经有热心网友撰写了《spamhaus的PBL申诉图解》,你可以参考一下。

2、发往 Hotmail 的邮件会被微软服务器进行反向解析,如果解析失败就拒收。因此自己搭建 SMTP 服务器时注意必须同时做好反向解析。

3、如果你用 Gmail 或其他要求 SSL 连接的 SMTP 服务器时,发现设置正确但是无法发出邮件,请检查一下你的网站服务器是否支持以 SSL 协议访问外部 URL —— 问问你的空间商吧。

 

如果您在邮件设置或者搭建SMTP服务器的过程中遇到困难,欢迎到本站的 Joomla! 中文论坛 适当的版块发帖讨论。

  1. 评论 (15)

  2. Add Yours

评论 (15)

这里还没有人发表评论
  1. 王甦冠

自己研究……到现在还没搞定…………

  附件
您无权查看附件
 
  1. 29366365

我按照你的说明设置了,结果注册后还是不能发送出激活通知邮件。账户无法激活。 怎么办呢?
<br />我的也是!

  附件
您无权查看附件
 
  1. jase

按指示全部设置了,也还是不行,我用的是joomla 1.61

  附件
您无权查看附件
 
  1. naturade

我按这样的设置还是[url=https://www.gtxybbs.com]广铁学院[/url]不行

  附件
您无权查看附件
 
  1. advancer

试了一下joomla 1.5,配置了后台邮件,我没有用gmail的邮箱而是用的是自己网站的SMTP,成功了,注册用户收到了激活邮件。但是网站没有收到有人注册的提示邮件啊?我有一问,1.5版网站是否能收到有用户注册的提示邮件? 以前用 joomla 1.0版的时候当注册时,两边都会收到邮件的。

  附件
您无权查看附件
 
  1. eddy710

我按照你的说明设置了,结果注册后还是不能发送出激活通知邮件。账户无法激活。 怎么办呢?

  附件
您无权查看附件
 
  1. fuckailifx

我是这样设置的可是提示SMTP错误呢。我的joomla发不出去邮件怎么办

  附件
您无权查看附件
 
  1. mula

信件收不到頗令人頭痛,我們現在也改用Gmail信箱來收發信了,真的還蠻方便的。

  附件
您无权查看附件
 
  1. JPCAD.net

白老大 你说首先要在 Gmail 的 Web 界面上进入“设置”,启用 SMTP 和 POP3 服务。<br />可我在设置里面只找到pop开启 smtp在哪设置啊

  附件
您无权查看附件
 
  1. eblise    JPCAD.net

me too!!<br />我也没有找到!!只有pop和IMAP,都启用了,还是不行

  附件
您无权查看附件
 
  1. yuhfa2002

我的新註冊過程順利,網站也告訴我寄出激活的信件了,可是卻怎麼也收不到。然到除了新註冊的淚活信件不到外,其他狀況的信又都收的到(如:聯絡我們)

  附件
您无权查看附件
 
  1. wowola    yuhfa2002

你用joomla后台群发邮件也能收到吗?

  附件
您无权查看附件
 
加载更多

免费下载最新Joomla!核心中文版

扫描此二维码,立即开始下载 Joomla 3 核心中文版

付费下载汉化版扩展

付费后即可下载独家海量

Joomla! CMS 扩展汉化版

了解付费会员制度

点击这里给我发消息

了解 joomlagate.com 网站的付费会员制度