CommentToMail 1.2.5 发布

前一版1.2.4问题较多,所以做了修正,没有增加功能。

细节上的变化:

1、取消设置中的邮件主体格式设置,由插件目录下的owner.html和guest.html两个模板实现。以前是放在CommentToMail/log目录下的,现在直接发在插件目录CommentToMail/下。

2、异步请求需要socket支持,自动依次调用fsockopen,pfsockopen,stream_socket_client,当这几个函数均被禁用,本插件就完全无法工作。

3、改变了发信的模式,原来是调用外部文件实现异步发送,现在改用action,权限上好控制一些。

如果要升级插件,需要禁用以前的版本,再上传覆盖后激活使用。

当出现插件无法工作,日志文件也无法生成的情况,请尝试把插件目录下的log和cache目录权限设为777,正常的应该为755

如果错误日志提示为无法连接smtp服务器,而设置又没任何问题的,请把插件目录下的class.phpmailer.php文件中小写的‘smtp’改为大写‘SMTP’ 。这是个很怪异的问题。

如果连错误日志都没有的话,目录权限又没问题,那么就是socket部分没有执行,有可能是fsockopen不能获取http的内容,可以使用phpinfo()查看“Registered PHP Streams”一项里面是否有http。

CommentToMail.1.2.5.zip             使用说明

如果要让评论者选择是否接收邮件需要在模板的comments.php文件中添加

<label><input type="checkbox" name="banmail" id="banmail" value="stop" />拒收邮件</label>

php上传的问题

这两天折腾VPS,把原来的Typecho插件弄上去折腾,发现麻烦问题,没法通过php上传了。无论是php+flash还是通过iframe都不行。尤其蛋疼的是flash上传,错误就一个 #2038 ,完全不知道具体原因,折腾人啊。搜索引擎都用得冒烟了都没解决好。

先是typecho的附件都没法上传,肯定是服务器配置出了问题,后来找到原因是apache配置了mod_security引起的,通过.htaccess文件关掉mod_security

<IfModule mod_security.c>
SecFilterEngine Off
</IfModule>

附件上传没问题了,但是自己写的上传代码总是没法,用chrome和firefox的调试工具总算知道了是403错误,处理上传的php文件被禁止访问了,网上找了一大圈,都没发现解决办法。最后偶然才发现在typecho的usr目录下有个.htaccess文件,一查看就找到问题的根本了。原来typecho为了安全,禁止了对usr目录下的所以php文件的直接访问。我的插件在usr/plugins目录下,处理上传的php文件在插件目录下,需要单独执行处理上传,被禁止访问就没法上传了。所以那个邮件提醒插件CommentToMail也会出现问题,因为也有独立的php文件需要执行,如果.htaccess文件禁止了usr目录下的php文件访问,肯定发不出邮件。

阅读剩余部分...

更换主题模板

放假了,还有一大堆事情等着做。今天上午把岳母送上了回家的客车,回来陪孩子耍了一整天。晚上得空把上次在群里找 蚂蚱 兄要的模板折腾一下,前几天一直也在一点一点的弄,今天总算勉强完工,挂上来亮亮相。目前唯一不满意的就是左上那logo,我对图啊颜色之类的太不敏感了,随便搞搞先挂起,空了再学学GIMP、Photoshop之类的再来折腾。

上个模板也很满意,braxiu 兄的,看久了审美疲劳,但是不抛弃不放弃,留着看腻了这个再轮换着用。

插件:CommentToMail升级1.2.4

因为有些主机禁用了fsockopen函数,有些主机没配置压缩函数,所以做了点改动。在使用socket功能时,依次使用fsockopen、pfsockopen和stream_socket_client,如果三个函数都没法,基本上主机php的socket功能被禁完了。

再一个在生成缓存文件时,原来是压缩后存储的,现在改用带时间限制的加密存储,就算没发送邮件,留下的缓存文件也不会暴露邮箱等信息。

对于SSL应该跟服务器是否配置openssl等ssl功能有关。

在本地测试腾讯邮箱465端口没任何问题,gmail还没测试过。当上服务器就发不出邮件,错误是连接不上smtp服务器,搜了下找到办法,把class.phpmailer.php文件中的:

  public function IsSMTP() {
    $this->Mailer = 'smtp';
  }

小写的smtp改为大写SMTP

  public function IsSMTP() {
    $this->Mailer = 'SMTP';
  }

开始不信这会有差别,结果真的可以。论坛上有重新打包的CommentToMail.1.2.4.zip

下载:华为网盘,注意找:CommentToMail.1.2.4.zip

如果旧版的1.2.3能够顺利使用,不建议升级,有些小问题还有待处理。