(2011-04)飞信接口恢复,详细参见文章: http://www.wbchn.tk/201104/fetion_api_1104/

(2010-11)很遗憾的告诉大家, 上面用到的API接口由于使用了3.5接口,现在已不能使用。
以下是中国移动的正式通知:
———————-
飞信停用低版本PC客户端公告(2010.11.20)
发布时间:2010-10-22

尊敬的用户:
为了提升飞信系统安全性,于2010年11月20日0时起,飞信平台将停止对3.5及以下的低版本PC客户端提供支持,您无法使用3.5及以下的低版本PC客户端登录飞信。您可以访问飞信官网下载频道http://www.fetion.com.cn/download下载并安装最新版本PC客户端后再次尝试登录。您可点击PC客户端左下角 菜单–帮助–关于飞信,来确认自己使用的客户端版本。
飞信业务将会不断的完善,致力于更好的用户体验! 感谢您对我们工作的支持!

飞信官方网站
2010-10-22
———————-

首先说明一点, 网上提供的飞信免费接口均是第三方的, 中国移动并没有提供接口, 至于第三方的安全性请参考接口作者的说明自行判断.

一下一段摘自张宴的blog: http://blog.s135.com/fetion_api/

飞信是由中国移动通信集团公司推出的一款集商务应用和娱乐功能为一体的,基于手机应用以及与Internet深度互通的即时通讯产品,可免费给好友发送短信。

1、下载中国移动飞信PC客户端软件(http://www.fetion.com.cn/downloads/pc.aspx),并注册开通飞信。注册成为飞信用户,下载飞信PC客户端、使用PC客户端基本功能,不收取费用。
2、通过PC客户端,邀请并添加免费短信接收方的手机号码(仅限中国移动)到您的飞信好友,该手机号需要通过通过PC客户端、或回复短信接受您的邀请;
3、通过 http://sms.api.bz/ 提供的 API 接口,即可免费给飞信好友或给你自己的手机发短信。利用本API接口可进行日程提醒、服务器监控、报警、故障通知或短信自动控制等功能。

飞信免费发短信API接口在线演示页面:
http://sms.api.bz/
https://sms.api.bz/ (HTTPS加密接口)

飞信免费发短信API接口调用方式(通过HTTP访问以下网址、支持GET和POST):

http://sms.api.bz/fetion.php?username=您的移动飞信登录手机号&password=您的移动飞信登录密码&sendto=接收短信的飞信好友手机号(也可以是你自己的手机号)&message=短信内容

注:短信内容最大长度为180个汉字,超过180个汉字不发送。返回的信息为UTF-8编码的中文文本信息。

据测试, HTTPS接口好像被GFW了, 不过从这个角度推测, 应该是GAE搭建的服务器.
如果发送内容中想换行, 可以用 n 如 abcndef, 手机收到后显示:

abc
def

PHP中发送:

post("http://sms.api.bz/fetion.php", $data);
echo $result; //返回信息默认为UTF-8编码的汉字,如果你的页面编码为gb2312,请使用下行语句输出返回信息。
?>

GAE中Python可以用

from google.appengine.api import urlfetch
def SendSMS(sms):  #sms中不能含有换行
    myphone = '13812345678'  # 手机号
    mypwd = 'wbchn.tk_pwd'  # 登录密码
    destphone = '13812345678'  # 发送对象飞信号
    url="http://sms.api.bz/fetion.php?username="+myphone+"&password="+mypwd
    url=url+"&sendto="+destphone+"&message="+sms
    urlfetch.fetch(url, payload=None,
                    method=urlfetch.POST,
                    headers={},allow_truncated=False,
                    follow_redirects=False)

但测试发现, 上面的语句只能发送没有换行符的短信, 因此, 根据GAE的手册使用urllib2进行发送:

import urllib
import urllib2
def SendMSG(phone, sms): #正常, 可以发送带换行的消息
    url = 'http://sms.api.bz/fetion.php'
    values = {'username' : '13812345678',
              'password' : 'wbchn.tk_pwd',
              'sendto' : phone,
              'message' : sms }

    data = urllib.urlencode(values)
    req = urllib2.Request(url, data)
    response = urllib2.urlopen(req)
    the_page = response.read()
    print the_page