通过Clickatell网关发送MMS

时间:2014-08-08 21:12:44

标签: python mms sms-gateway clickatell mms-gateway

我试图通过Clickatell向手机发送彩信。我可以发送普通短信,但是对于彩信,我得到200个返回码和一个ID,但是当他们在他们的网站上查找ID时,我得到状态9,发送路由错误传递我的消息。

我使用python-messaging的(修补)版本构建.mms文件:

from messaging.mms.message import MMSMessage, MMSMessagePage

mms = MMSMessage()
mms.headers['To'] = '+1<my phone number>/TYPE=PLMN'
mms.headers['Message-Type'] = 'm-send-req'
mms.headers['Subject'] = 'Test python-messaging.mms'

slide1 = MMSMessagePage()
slide1.add_image('/home/<me>/Pictures/test.jpg')

mms.add_page(slide1)

mms.to_file('test.mms')

然后我将test.mms文件放入我的公共Dropbox,然后进行HTTP调用:

r = requests.get('https://api.clickatell.com/mms/ind_push', params={
    'user': <username>,
    'password': <password>,
    'api_id': <api_id>,
    'to': +1<my phone number>,
    'mms_subject': 'test',
    'mms_from': 'testname',
    'mms_class': 80,
    'mms_expire': 10000,
    'mms_url': <public Dropbox link to the .mms file>
})
然后我得到了这个:

>>> r.status_code
200
>>> r.text
'ID: <a valid ID>'

但是,当我在Clickatell的网站上查看该ID时,我得到了这个:MMS Status 9 - Routing Error

我做错了吗?我觉得奇怪的是我必须在MMS文件和Clickatell的API中包含to字段,但我无法看到我正在做的任何事情完全错误。

1 个答案:

答案 0 :(得分:2)

当移动网络上的订户未生成MMS消息时,移动运营商倾向于阻止第三方向其移动网络上的收件人提交MMS消息。

您可能要做的是发送一条短信,其中包含用户可以通过手机网络浏览器点击以打开图片的链接。