马红亮发表的博客

世界上的任何人

         2010年开始在中国教育人博客上发博客,其中有一些Moodle和系统管理有关的博客,还是有必要整理一下与大家共享:

         原文发表于2016-08-24:

        首先,要启用Moodle中的用户基于Email的自助注册,需要在 网站管理 ——插件——身份认证中启用“基于email的自助注册”。
        接着,需要明白的是,Moodle并不是一个邮件转发程序(MTA ,mail transfer agent),不能实现邮件的发送。邮件发送需要依赖于一个外部MTA或者第三方SMTP服务器。详见Moodle官网讨论(2.7.2 Email-Based Self-Registration: No email sent
        如果用第三方SMTP服务器,如qq、126等邮箱,那么只需要在Moodle中的 网站管理 ——插件——消息输出——Email中按照第三方SMTP的客户端设置填写相应的 SMTP参数即可。但测试发现,这种途径转发Moodle邮件往往不成功,因为受限于第三方SMTP服务器端的严格限制和各种过滤。
        另外一种可行的途径则是在服务器上自建一个MTA来转发邮件,这也是Moodle默认的邮件发送方式,参见Moodle官方的SMTP说明
SMTP stands for Simple Mail Transfer Protocol. The SMTP host is an email relay that will take the email from Moodle and send it to users. You will need to set this only if your server does not allow mail relay. Otherwise, PHP will send out the mail using its built-in mail server. All the email sent by forums and other modules will be sent through this host.  
       也就是说,默认情况下Moodle的PHP程序会调用mail()函数发送邮件,而Mail()函数起作用有赖于系统中的sendmail程序(参阅php mail()函数)。在ubuntu系统中,sendmail已经被更安全、快捷的postfix程序代替,所以还需要安装postfix并进行配置。这里找到一种简易的仅仅把Postfix作为邮件发送程序的配置方法(How to Install and Configure Postfix as a Send-Only SMTP Server on Ubuntu 16.04)。高级的配置需要花更多的时间来熟悉。
       注意,如果选择自身服务器的Postfix来转发moodle邮件,那么就不需要在Moodle中设置第三方SMTP了。
标签: