WordPress 同步 Qzone/QQ空间 live space的方法
今天去逛了逛自己的qq空间,发现访问的人还不少,可惜我的qq空间里面基本没有什么内容。如果能把本博客的内容自动同步到qq空间,岂不是一件美事。google了一下找到了一个解决方案,http://blog.xiaoding.org/post/wordpress-sync-with-qzone-live_space.html
本来以为很简单的一个事情,很快可以搞定,结果使用上面介绍的方法,怎么弄也不成,后来仔细阅读代码,在关键地方打出log,终于找到了原因,原来是从我的博客空间(dreamhost)无法连接到smtp.qq.com服务器的25号端口(smtp默认端口),但是从宿舍的电脑上却可以连接。估计是腾讯害怕国外的黑客吧
。所幸天无绝人之路,qq邮箱帮助文档中提到了他们也支持ssl安全连接。在我的blog空间telnet smtp.qq.com 465,发现可以连接。发现了这个之后,问题就很容易解决了。PHPMailer本来就支持ssl方式连接,简单修改一下/wp-content/plugins/wp-qzone/wp-qzone.0.4.php(最新版,其他版本可能是/wp-content/plugins/wp-qzone/wp-qzone.php)中的Mailer类,增加下面红色部分代码即可搞定
class Mailer extends PHPMailer
{
var $qq=null;
function Mailer($qq,$psw) {
$this->qq=$qq;
$this->From = “{$qq}@qq.com”;
$this->FromName = $qq;
$this->Host = “smtp.qq.com”;
$this->Mailer = “smtp”;
$this->WordWrap = 75;
$this->CharSet = ‘utf-8′;
$this->Encoding = ‘base64′;
$this->SMTPAuth = true;
$this->IsHTML(true);
$this->Username = $qq;
$this->Password = $psw;
$this->SMTPSecure = “ssl”;
$this->Port = 465;
}
function Halo($subject,$body){
$this->AddAddress(“{$this->qq}@qzone.qq.com”, “{$this->qq}@qzone.qq.com”);
$this->Subject = $subject;
$this->Body = $body;
return $this->Send();
}
}
原文中仅仅显示摘要的代码同样拷贝过来就可以使用,我的新代码增加了ssl支持,并且更新到了最新版0.4版(原文的插件版本是0.2.1),朋友们如果不想修改代码的话可以直接点击这里下载我修改后最新的插件包。
除注明转载的文章外,都是本人原创,转载时请加上原文链接并注明: 转载自品味生活
Popularity: 43%
你可能对这些文章也感兴趣:
非常感谢你,我一直想找打wordpress同步qzone的方法,从一开始用水煮鱼的插件,到后来用post2qzone,均没有成功。知道发现你的blog中的解决方法,稍经调试便成功,你加的代码是画龙点睛,非它不成。我将转载你的这篇文章,也将遵循你的转载规定。
欢迎来我的blog访问。
再次感谢
[回复]
这篇文章写的非常棒 先收藏了 谢谢博主~~~
[回复]
Sorry,Your webserver do not support socket!
好像启用以后还是没改观…我的主机是国内的。
[回复]
小旅 回复:
06月 30th, 2010 at 10:23
这是因为你的空间不支持socket,使用这个插件的前提条件就是空间必须支持socket,你详细看看我引用的那篇文章中开头部分。
[回复]
非常感谢你提供的修改插件,因为我公司封了QQ,但又想发文章到WordPress和QZONE,恰恰服务器不支持socket,希望你这个修改版的插件能了结此问题
[回复]
无法连接的原因是空间商限制了对外网主机25端口的访问 这么做是为了防止有人利用空间来发送垃圾邮件
我在写那篇文章的时候使用的空间是可以访问25端口的,后来换了一个空间, 发现不行了。然后也跟你一样利用 SSL 连接 解决了问题,不过懒得更新文章 所以就没有写。
[回复]
小旅 回复:
06月 23rd, 2010 at 10:21
@xiaoding, 呵呵,那我的猜错了,应该是国外主机的原因,因为能登录的国外主机目前只有这么一个,所以臆断啦。感谢xiaoding的批评指正。
[回复]
俺没有试过。目前还不需要。收藏一下。
[回复]