MediaWiki 默认采用本机作为邮件发送服务器,而发出去的邮件很容易被接收方当成垃圾邮件或者直接被屏蔽掉,所以建议直接采用第三方smtp服务器,以腾讯企业邮箱为例:
安装需要的库
PHP 7 使用 composer 安装依赖库composer require --update-no-dev pear/mail pear/net_smtp
如果安装的是 alpha 版(从 Git 下载的),去掉 –update-no-dev 选项。
PHP 5 用 pear 安装:sudo pear install Mail Net_SMTP
配置smtp
#编辑网站根目录下的 LocalSettings.php 配置文件
设置 $wgSMTP 和 $wgPasswordSender 变量
MediaWiki配置邮件官方文档:https://www.mediawiki.org/wiki/Manual:$wgSMTP
#查找 wgEnableEmail 关键字
#添加 类似如下行:
$wgSMTP = array(
'host' => "mail.example.com", // SMTP 服务器的地址 (或IP).如果使用了SSL,记得加上 ssl://
'IDHost' => "example.com", // 汝的域名,可选.如果不设置的话会设置成 $wgServer 的值.
'port' => 25, // 端口(一般是25,SSL是465,StartTLS是587)
'auth' => true, // 是否需要 SMTP 认证 (多半都需要呗~)
'username' => "my_user_name", // SMTP 认证的用户名.
'password' => "my_password" // SMTP 认证的密码.
);
举个例子:
$wgSMTP = array(
'host' => "ssl://smtp.exmail.qq.com", // qq 企业邮箱要求加密连接
'IDHost' => "exmail.qq.com",
'port' => 465,
'auth' => true, // 需要登录
'username' => "no_reply@example.com", // SMTP 认证的用户名.
'password' => "foo" // SMTP 认证的密码.
);
有些时候 SMTP 服务器要求外发邮件地址中的发件人和实际一致,这时需要设置 $wgPasswordSender 变量:
#注意 确保配置文件中 username 是相同的;
$wgEmergencyContact = “no_reply@example.com”;
$wgPasswordSender = “no_reply@example.com”;
修改完以后用某个功能(例如修改邮件地址测试一下)