不论是 Joomla! 1.0 还是 Joomla! 1.5,在安装之后,都默认已设定使用 PHP Mail 功能来发送激活/通知邮件。在“邮件设置”那里,还有两个选项就是:Send Mail 和 SMTP。在大多数情况下,PHP Mail 能够满足需要,因此也很少有人专门关注这个问题。
不过,有时候偶尔会出现用 PHP Mail 或 Send Mail 发送不出邮件的情况。这可能是由于某些邮件服务器会把这两种方式发出的邮件认定为垃圾邮件而拒收。例如,本站一直使用 PHP Mail 发送注册后的激活邮件,发件人信箱填写的是 Gmail 的帐号,但是 Hotmail 服务器认为 Gmail 的邮件应该由 Gmail 服务器发出,而不应该从 PHP Mail 发过来,因此统统拒绝。这就造成了很多人填写 Hotmail 帐号来注册本站会员时没有收到激活邮件的尴尬局面。
这几天我在尝试改为 SMTP 方式时,才发现 Gmail 的 SMTP 设置不像想象中那么简单。因此决定撰文介绍一下。既然给新手看,就说详细一点吧。
为什么要用激活邮件?
因为网站可能要发送某些通知给会员,如果不要求激活,就无法验证会员在注册时填写的信箱是否属实。这个世界上还确实存在一批比较变态的人,注册时就是要填 写假的信箱,这样网站就无法将重要通知送达这些会员。如果是论坛,那么一般在有回复帖子时,都要发送通知邮件给前面发帖的人,让他们来阅读回帖。如果信箱 是假的,怎么能通知到?还有会员之间的联络,有时候也需要发送 e-mail。
因此,要求会员在注册时提供有效 e-mail 是非常重要的,而确定电邮地址是否有效的最佳手段就是发送激活邮件。只有当会员点击激活邮件中的激活链接之后,才能完成注册。如果他提供的信箱是假的,那么就永远收不到激活邮件。
为什么要用 SMTP 发送激活邮件?
前面说了,PHP Mail 和 Send Mail 也能发送邮件,但是有时候会被拒绝。因此建议使用 SMTP 方式。现在大多数 SMTP 服务器都要要求发送者进行身份认证(SMTP Authentication),这样发出去的邮件中就包含了认证信息,接收方的服务器就认为这封邮件的发件人身份比较可靠,就乐于接受邮件。这就好比在 淘宝网上商店的实名认证一样,多了一种认证,就提高了一些可信度。
为什么要用 Gmail 的 SMTP 服务器?
一般的网站都不会自己建 SMTP 服务器,毕竟有些麻烦。而且也不是随便建一个