序言
由于之前服务器软件的问题,导致我的使用MediaWiki搭建的知识库使用起来很烦,每次都得远程连接上服务器,重启软件才能打开。于是,我花了这几天时间调研测试几款服务器软件,最终我选择了upupw这款软件。主要是对新手友好,一些常用的模块带上了。补充说一下,我的这个服务器是阿里云的,系统是Windows。
重建网站
由于我的知识库暂时没有添加资料,就写了关于和免责声明,所以数据库基本上是空的,在加上LOGO和小图标我已经设计好了,所以我是直接把网站程序全部删除,使用另一个服务器软件重新搭建知识库。
一开始还好,很顺利,由于web服务器软件带有我需要的xcache或wincache模块,所以我搭建的很顺利。后来在“参数设置”里的验证电子邮件的地方出错了。
报错
点击发送电子邮件,各种出错,一开始主要就是php mail()
出错, 我到这个服务器软件的官网查了一下,在sendmail.ini
里面配置了一下SMTP相关的参数,很好,不是mail()
出错了,结果又出现(code: -1, response: )]
这个报错了。然后我花了一天的时间,查看了不下于100篇的文章,经过重建网站三四次,测试各种方案,终与完美的解决了MediaWiki发邮件的问题。其实,我自己都快烦了,各种方案都不行,网站都重建了几次,我都在想换一个程序,不用MediaWiki了,换一个用Python写的Wiki程序,而且我也下载了好几个基于Python的Wiki程序,例如MoinMoin,Trac,Wikka,tiki,Piggydb,Mantiabt等。但是这几个除了Trac的界面比较符合我的胃口外,其他的都太丑了,但是Trac并不是纯粹的Wiki。思来想去还是想办法解决MediaWiki的邮件问题,它是很适合我的,界面很简约。
解决办法
安装Pear
首先,安装PEAR。PHP里面有一个mail函数,一般PHP发送电子邮件使用的就是mail()
函数,所以我们要安装这个模块。它的下载链接是:https://pear.php.net/go-pear.phar,这个链接直接打开是很长的代码,所以复制它的链接,用下载软件直接下载。然后上传到服务器里面,也可以在服务器里下载。
打开命令行,在PHP目录里面执行php go-pear.phar
后会出现
Are you installing a system-wide PEAR or a local copy?
(system|local) [system] :
我选择的是system
之后一路Enter
,就安装成功了。同时在最后提示是否更新php.ini的时候,记得按y。你再打开php.ini会发现在最后面多了一行Pear的路径。
安装Mail、Net_SMTP
上一步安装成功后,你可以执行 pear list
,看看你当前用的PHP有哪些模块。
这个是没有Mail、Net_SMTP模块的。那么就需要安装,因为在MediaWiki上的介绍是需要的。执行命令:
pear install MAIL Net_SMTP
修改LocalSetting.php
上面需要安装的已经安装完成,接下来修改MediaWiki的配置文件LocalSetting.php。首先,需要指明的是pear的路径。
$path = array( $IP, "$IP/includes", "$IP/languages","C:\UPUPW_ANK_W64\Modules\PHPX\PHP7X\pear\PEAR","C:\UPUPW_ANK_W64\Modules\PHPX\PHP7X\pear");
将上面的一行代码添加到LocalSetting.php中。然后,再将SMTP信息填上。
$wgSMTP = array(
'host' => "ssl://smtp.mxhichina.com", // could also be an IP address. Where the SMTP server is located
'IDHost' => "smtp.mxhichina.com", // Generally this will be the domain name of your website (aka mywiki.org)
'port' => 465, // Port to use when connecting to the SMTP server
'auth' => true, // Should we use SMTP authentication (true or false)
'username' => "[email protected]", // Username to use for SMTP authentication (if being used)
"password" => "*********" // Password to use for SMTP authentication (if being used)
);
$wgEmergencyContact = "[email protected]";
$wgPasswordSender = "[email protected]";
$wgEnableEmail = true;
$wgEnableUserEmail = true; # UPO
$wgEmailAuthentication = true;
可以按我的填写。把username和password改成你自己的。
同时,之前我还安装了SwiftMailer 拓展,按照官方的方法,一定能安装上去。当时我也是没办法了。
修改sendmail.ini
把sendmail.ini文件的内容补充完整。
[sendmail]
smtp_server=ssl://smtp.mxhichina.com
; smtp port (normally 25)
smtp_port=465
; SMTPS (SSL) support
; auto = use SSL for port 465, otherwise try to use TLS
; ssl = alway use SSL
; tls = always use TLS
; none = never try to use SSL
smtp_ssl=auto
error_logfile=error.log
;debug_logfile=debug.log
; if your smtp server requires authentication, modify the following two lines
auth_username= 自己的邮箱
auth_password= 邮箱密码
; if your smtp server uses pop3 before smtp authentication, modify the
; following three lines. do not enable unless it is required.
pop3_server=
pop3_username=
pop3_password=
这个是阿里企业邮箱。
注意: 如果你的服务器是阿里云的,SMTP端口一定不要填写25,阿里云把25端口封了。这是我血淋淋的教训。
我当时用的25端口,在这里找到了,都被当做攻击了。我以为是需要pop3验证,所以pop3的资料我也填了,结果今天查看邮箱登陆记录,才知道不能用25端口。
昨天的pop3是成功的,今天换成465端口的ssl,成功发信了。
经过一天的折腾,把发邮件的功能弄好,我还是很高兴的。
最后
最后说一下,这个解决方案并不适合所有人,因为我上网查了100多篇的文章,经过很多次的实验,才成功的,这个解决方案能解决我的问题,但不一定能解决你的问题,所以,对你来说只是参考,我也希望能解决你的问题。
如有错误,敬请指出,感谢阅读! —2018-01-24 22:06:21
最新评论
这个软件有bug的,客户端windows有些键不能用如逗号、句号
没有收到邮件通知
我的评论通知貌似坏掉了,定位一下问题
测试一下重新部署后的邮件功能
居然看到自己公司的MIB库,诚惶诚恐
那可能是RobotFramework-ride的版本问题。我装的1.7.4.2,有这个限制。我有空再尝试下旧版本吧,感谢回复。
你好!我在python2.7中安装RobotFramework-ride的时候提示wxPython的版本最高是2.18.12,用pip下载的wxPython版本是4.10,而且我在那个路径下没有找到2
真的太好了,太感谢了,在bilibili和CSDN上都找遍了,终于在你这里找到了