欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

同步 WordPress 博客日志到 QQ 空间 其实里面也有发送邮件的代码 有大用

shiping1 的头像
WP2Qzone插件 见附件
WP2Qzone 是一个 WordPres 插件,它的功能很简单就是同步 WordPress 博客日志到 Qzone。

另外QQ 空间2014.3.31关闭了add_share和add_one_blog接口已。网站只能调用空间分享组件,让用户主动分享,所以这个是目前唯一可以自动同步日志到 QQ空间的方法。

WP2Qzone 原理

  1. 1

    WP2Qzone 的原理是通过 QQ 邮箱中转实现的,具体的过程是这样的:由于 Qzone 支持通过你的 QQ 邮箱发布,而 QQ 邮箱又支持 SMTP 协议,而 WordPress 所包含的 PHPMailer 类可以使用 SMTP 发邮件,所以我们可以通过使用 PHPMailer 发送邮件来实现同步 WordPress 博客日志到 Qzone。因此首先需要打开 QQ 邮箱的 SMTP 功能。

    END

WP2Qzone 安装和使用

  1. 1

     打开 QQ 邮箱的 SMTP 功能

  2. 2

    下载 WP2Qzone 插件:WP2Qzone。

  3. 3

    上传到 WordPress 插件目录中下并激活。

  4. 4

    在 WP 后台 > 设置 > WP2Qzone 设置页面,输入你要同步的 QQ 空间对应的 QQ 号码和密码,以及设置同步全文还是摘要。

    同步 WordPress 博客日志到 QQ 空间
  5. 5

    这样只要你一发布日志就会自动更新到 Qzone 中。

    来自  http://jingyan.baidu.com/article/455a99508797c1a166277895.html


QQ空间目前支持了网易、人人、大巴博客的导入,但是好像不起作用,属于搬家服务,而空间之间也不能导入。wordpress同步到QQ空间的方法都是使用QQ邮箱向空间投稿的方式,目前有两个原理和效果差不多的插件。本文frustigor将贴出代码,读者可以自己在此基础上开发后台,为自己的日志添加新的其他的东西。

<?php
/*
Plugin Name: WP2Qzone
Plugin URI:?http://www.utubon.com/46
Description: 同步 WordPress 博客日志到 Qzone。
Version: 1.0
Author: frustigor
Author URI: http://www.utubon.com/
*/
//其实里面也有发送邮件的代码

function smtp_mailer_qqmail($subject,$body){
$qq_number = '你的QQ号码';
$qq_password = '你的QQ密码';//这个地方你当然可以利用乌徒帮其他文章的一些方法,为自己添加后台功能,在后台设置

if ( !class_exists('PHPMailer') ) {
require_once ABSPATH . WPINC . '/class-phpmailer.php';
require_once ABSPATH . WPINC . '/class-smtp.php';
}
$mail = new PHPMailer();

$mail->IsSMTP();
$mail->Mailer = "smtp";
$mail->CharSet = 'utf-8';
$mail->Encoding = 'base64';
$mail->IsHTML(true);
$mail->SMTPAuth = true;
$mail->Host = "smtp.qq.com";
$mail->Username = $qq_number."@qq.com";
$mail->Password = $qq_password;
$mail->From = $qq_number."@qq.com";
$mail->FromName = $qq_number;

$mail->AddAddress($qq_number."@qzone.qq.com");
$mail->Subject = $subject;
$mail->Body = $body;
$mail->Send();
}
add_action('publish_post', 'publish_post_2_qzone', 0);
function publish_post_2_qzone($post_ID){
$qzone = get_post_meta($post_ID,'qzone',true);
if($qzone) return;
$post_title = trim(stripcslashes(stripslashes($_POST['post_title'])));
$post_content = wpautop($_POST['post_content']);
$post_content= trim(stripcslashes(stripslashes($post_content))).'<br />查看全文:<a href="'.get_permalink($post_ID).'">'.get_permalink($post_ID).'</a>';
smtp_mailer_qqmail($post_title,$post_content);
add_post_meta($post_ID,'qzone','本文已经同步到QQ空间日志了,把本自定义域删除之后可以再次向空间发文',true);
}

上文中有三段代码,均已被加粗,第一段是一个通过邮件及smtp发送邮件,并有发送到QQ空间指令的功能;

第二段很简单,加入在发布或更新文章时提交一个函数的动作;

最后一段是在第二段的时候发布文章时执行的函数,通过增加一个qzone的自定义域,即可实现文章只发送一次,而不会在更新文章时再继续发送。

实现该插件的功能还要求:1、你的网站支持发送邮件;2、QQ邮箱开通了smtp。你只需要安装此插件后发布一篇文章测试,如果在QQ邮箱内的已发送中找到一篇文章名一样的邮件,那么你的网站肯定支持发送邮件;如果你的空间没有开通smtp,这封邮件会提示你打开该功能。

来自 http://jingyan.baidu.com/article/455a99508797c1a166277895.html

附件大小
Package icon WP2Qzone插件.zip1.49 KB
普通分类: