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),朋友们如果不想修改代码的话可以直接点击这里下载我修改后最新的插件包。
重要更新:nosper 反映他的博客系统使用465端口也无法使用,但是使用587端口可以, 大家如果发现465端口不通的话,可以使用587端口。感谢nosper的批评指正!!
除注明转载的文章外,都是本人原创,转载时请加上原文链接并注明: 转载自品味生活
Popularity: 36%
目前还在zblog中~
[回复]
Parse error: syntax error, unexpected ‘$’, expecting ‘&’ or T_VARIABLE in /home/vol12/0fees.net/fees0_7420686/htdocs/wp-content/plugins/wp-qzone.0.4.php on line 22
请帮我看看吧1我不知道怎么改!
[回复]
非常感谢,我用的也是外国主机,一直被同样的问题困扰。按照你的方法试了下 465,发现不行,然后去看了下QQ邮箱ssl 的其他端口,发现还有 587,改了之后就可以成功同步了。 这个方法很好,我会转载到我的空间,并放上你的链接。 谢谢
[回复]
小旅 回复:
03月 1st, 2011 at 17:22
@nosper, 恩,不同的主机对qq服务器的可达性可能不太一样,如果大家使用465端口还是不行的话,就试试587端口。谢谢nosper的指正
[回复]
非常感谢你,我一直想找打wordpress同步qzone的方法,从一开始用水煮鱼的插件,到后来用post2qzone,均没有成功。知道发现你的blog中的解决方法,稍经调试便成功,你加的代码是画龙点睛,非它不成。我将转载你的这篇文章,也将遵循你的转载规定。
欢迎来我的blog访问。
再次感谢
[回复]
小旅 回复:
10月 14th, 2010 at 19:53
@topwht,不客气,能对你有所帮助我很高兴
[回复]
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的批评指正。
[回复]
俺没有试过。目前还不需要。收藏一下。
[回复]