MediaWiki 设置QQ企业邮箱SMTP(SSl方式)发送邮件

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";

修改完以后用某个功能(例如修改邮件地址测试一下)

发表评论?

0 条评论。

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据