如何用Gmail的SMTP来发送Joomla信件在Joomla安装之后,都默认已设定使用PHPMail功能来发送激活/通知邮件。全局设置-邮件设置那里,还有两个选项就是:SendMail和SMTP,而在大多数情况下,PHPMail都可以正常使用,所以这个问题并不是很多人太在意。但是,有时候可能因为服务器不支持PHPMail或SendMail导致邮件发送不出的情况。例如,使用PHPMail发送注册后的激活邮件,发件人信箱填写的是Gmail的帐号,但是Hotmail服务器认为Gmail的邮件应该由Gmail服务器发出,而不应该从PHPMail发过来,因此统统拒绝。这就造成了很多人填写Hotmail帐号来注册会员时没有收到激活邮件的尴尬局面。发现Gmail的SMTP设置有点小复杂。以下来做一下说明:为什么要用激活邮件?因为网站可能要发送某些通知给会员,如果不要求激活,就无法验证会员在注册时填写的信箱是否属实。这个世界上还确实存在一批比较变态的人,注册时就是要填写假的信箱,这样网站就无法将重要通知送达这些会员。如果是论坛,那么一般在有回复帖子时,都要发送通知邮件给前面发帖的人,让他们来阅读回帖。如果信箱是假的,怎么能通知到?还有会员之间的联络,有时候也需要发送e-mail。因此,要求会员在注册时提供有效e-mail是非常重要的,而确定电邮地址是否有效的最佳手段就是发送激活邮件。只有当会员点击激活邮件中的激活链接之后,才能完成注册。如果他提供的信箱是假的,那么就永远收不到激活邮件。为什么要用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的网站流量分析系统、GoogleGroup、Gtalk即时通讯工具、GoogleCode、GoogleCalendar等等在线服务。你就相当于拥有了一个使用范围很广的Passport通行证。单就邮件功能来说,Gmail也是非常不错的。默认6GB空间,强大的邮件搜索功能,使得你几乎不用删除邮件。同一主题的邮件往来以会话(Thread)形式叠联显示,也是一大创举。它还提供了免费的POP3和SMTP服务,方便用户通过OutlookExpress等邮件客户端软件收发邮件。我认为Gmail邮件帐号就是想要建站的网管应该必备的,这一点我在《安装Joomla之前的准备工作》一文中也提到了。在此也顺便提一下Hotmail,以前hotmail也是允许通过OE来收发邮件(IMAP),后来竟然取消了!也就是说,Hotmail根本没有免费SMTP服务了。我就是在那时抛弃了hotmail转用Gmail。怎样设置Gmail的SMTP?首先要在Gmail的Web界面上进入“设置”,启用SMTP和POP3服务。如果你要在OE上面使用Gmail的SMTP,可以参考Gmail的帮助页面来设置。但是在Joomla!的邮件设置中,这样填写是行不通的。我也是在失败之后经过搜索才找到一个正确方法。一般我们都在“SMTP主机”这里填写smtp.***.com,星号代表SMTP服务器的域名。但是Gmail很特殊!因为它的认证是通过SSL协议访问的,而Joomla!没有提供SSL验证的选项。曾经有人在论坛发了一个GmailSSL补丁,以便在上面的表单上增加一项“SMTP安全:SSL”。但是,这个补丁会修改Joomla!1.5的核心文件,我认为不太好——当你下次升级Joomla!时就很不方便。这么填写:邮件模式:SMTP寄件地址:somebody@gmail.com此邮件地址受阻挡spam的自动程序保护,需要激活Javascript功能才能查阅。发件人名称:某某网站(论坛)SMTP认证:是SMTP用户名:somebody@gmail.com此邮件地址受阻挡spam的自动程序保护,需要激活Javascript功能才能查阅。SMTP密码:**********SMTP主机:gmail-smtp-in.l.google.com奥妙就在最后“主机”这里!我按照上述设置,已经在XAMPP搭建的本地测试服务器上测试成功!(如果你测试时Joomla!前台提示“PHPMAILER_RECIPIENTS_FAILED”错误,不要理会,你检查一下新注册的信箱就会发现已经收到了激活邮件)另外注意:在“SMTP用户名”这里,必须填写完整的邮件地址,而不只是@符号前面的部分;“密码”当然填写你自己的密码。如果你的网站开通了Gmail提供的“企业邮局”服务,那么SMTP用户名那里也要填写完整的e-mail地址作为认证帐号。不论是Joomla!1.5还是Joomla!1.6,在安装之后,都默认已设定使用PHPMail功能来发送激活/通知邮件。在“邮件设置”那里,还有两个选项就是:SendMail和SMTP。在大多数情况下,PHPMail能够满足需要,因此也很少有人专门关注这个问题。不过,有时候偶尔会出现用PHPMail或SendMail发送不出邮件的情况。这可能是由于某些邮件服务器会把这两种方式发出的邮件认定为垃圾邮件而拒收。例如,本站一直使用PHPMail发送注册后的激活邮件,发件人信箱填写的是Gmail的帐号,但是Hotmail服务器认为Gmail的邮件应该由Gmail服务器发出,而不应该从PHPMail发过来,因此统统拒绝。这就造成了很多人填写Hotmail帐号来注册本站会员时没有收到激活邮件的尴尬局面。如果你的网站拥有自己的SMTP邮件服务器(例如Hawkhost空间就提供SMTP功能),那么你可以使用SMTP方式来发送系统邮件。不过,国内的空间大都没有提供SMTP服务。这一类站长也不要担心,你还有一个选择:使用Gmail的免费SMTP服务!使用Gmail的SMTP参数来设置Joomla!的“邮件设置”并不复杂,但是很多人都不能顺利发出邮件,在Joomla!之门的论坛上有很多人反复对此提问,因此今天撰文详细介绍一下。(注:本文的早期版本推荐的是gmail-smtp-in.l.google.com这个SMTP服务器,那个方法已经失效。本文于2011年5月8日重新修订,介绍新的Gmail参数设置方式)。Joomla!1.5后台的“邮件设置”参数为什么要用激活邮件?因为网站可能要发送某些通知给会员,如果不要求激活,就无法验证会员在注册时填写的信箱是否属实。这个世界上还确实存在一批比较变态的人,注册时就是要填写假的信箱,这样网站就无法将重要通知送达这些会员。如果是论坛,那么一般在有回复帖子时,都要发送通知邮件给前面发帖的人,让他们来阅读回帖。如果信箱是假的,怎么能通知到?还有会员之间的联络,有时候也需要发送e-mail。因此,要求会员在注册时提供有效e-mail是非常重要的,而确定电邮地址是否有效的最佳手段就是发送激活邮件。只有当会员点击激活邮件中的激活链接之后,才能完成注册。如果他提供的信箱是假的,那么就永远收不到激活邮件。为什么要用SMTP发送激活邮件?前面说了,PHPMail和SendMail也能发送邮件,但是有时候会被拒绝。因此建议使用SMTP方式。现在大多数SMTP服务器都要要求发送者进行身份认证(SMTPAuthentication),这样发出去的邮件中就包含了认证信息,接收方的服务器就认为这封邮件的发件人身份比较可靠,就乐于接受邮件。这就好比在淘宝网上商店的实名认证一样,多了一种认证,就提高了一些可信度。为什么要用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的网站流量分析系统、GoogleGroup、Gtalk即时通讯工具、GoogleCode、GoogleCalendar等等在线服务。你就相当于拥有了一个使用范围很广的Passport通行证。单就邮件功能来说,Gmail也是非常不错的。默认6GB空间,强大的邮件搜索功能,使得你几乎不用删除邮件。同一主题的邮件往来以会话(Thread)形式叠联显示,也是一大创举。它还提供了免费的POP3和SMTP服务,方便用户通过OutlookExpress等邮件客户端软件收发邮件。我认为Gmail邮件帐号就是想要建站的网管应该必备的,这一点我在《安装Joomla之前的准备工作》一文中也提到了。在此也顺便提一下Hotmail,以前hotmail也是允许通过OE来收发邮件(IMAP),后来竟然取消了!也就是说,Hotmail根本没有免费SMTP服务了。我就是在那时抛弃了hotmail转用Gmail。怎样设置Gmail的SMTP?新注册的Gmail信箱已经默认开启了POP3(收信)和SMTP(发信)服务,因此你无须登录到gmail的Web界面去再次开启。也就是说,只要你拥有了一个Gmail信箱,你就自动拥有了一个免费的SMTP服务器。Gmail官方网站已经提供了在Outlook中使用gmailSMTP发信的设置方法,既然这些参数可以让Outlook发出gmail邮件,那么这些参数同样也能让Joomla!成功发出邮件。要特别提醒的一点是:Gmail的SMTP认证是通过SSL协议访问的,而早期的Joomla!1.5核心在“邮件设置”参数那里没有“SMTP安全”的选项(曾经有人开发过一个GmailSSL补丁来解决这个问题),如本文开头的截图所示。现在最新的Joomla!1.5核心已经拥有了SSL验证选项,就不需要该补丁了。根据Gmail官方给出的SMTP设置参数,在Joomla!1.5后台的“邮件设置”那里,应该这么填写:邮件模式:SMTP服务器寄件人地址:somebody@gmail.com发件人名称:某某网站(论坛)发送邮件路径:(此项在SMTP模式下无意义,不用管)SMTP认证:是SMTP安全:SSLSMTP端口:465SMTP用户名:somebody@gmail