python - 通过 Clickatell 网关发送彩信

标签 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 文件放入我的公共(public) 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 字段,但我看不出我做的任何事情完全错误。

最佳答案

当彩信消息不是由移动网络上的订阅者生成时,移动运营商往往会阻止第三方向其移动网络上的收件人提交彩信消息。

您可能想要做的是发送一 strip 有图像链接的短信,用户可以点击该链接通过手机网络浏览器打开该图像。

关于python - 通过 Clickatell 网关发送彩信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25212334/

相关文章:

Python 将 DLL 复制到 Windows 上的站点包

java - Android Marshmallow 上的内容提供商结果中缺少短信

java - 电脑发ems短信到手机

使用基于短信的身份验证的 iPhone 或 Android 应用程序?

python - 将 numpy 数组保存到二进制文件

python Pandas : Applying changes to specific columns by column names

python - 在 SQLAlchemy 中为分片动态设置 __tablename__?

android - java.lang.NoSuchMethodError : org. apache.http.impl.conn.tsccm.ThreadSafeClientConnManager

android - 彩信 Intent ACTION_SEND

php - 我可以设置自己的 SMS 网站吗?如何?