我在Vs 2010中使用SMPP
客户端C#
向SMSC发送短信。我只是无法弄清楚如何获取已发送邮件的发送报告。我使用QuerySM
来获取消息的状态,但即使我向未使用的号码发送短信,它也会返回OK状态。
以下是获取投放报告的代码:
QuerySm deliver = new QuerySm(_MessageID, SrcTon, SrcNpi, SrcAddr);
client.Query(deliver);
答案 0 :(得分:2)
您正在使用的SMSC可能不支持query_sm
,在这种情况下,他们可能已为每个请求实施了一个占位符query_sm_resp
PDU,状态为OK。
您可以将registered_delivery
中的submit_sm
标记设置为1并侦听传入的deliver_sm
PDU,以便从中获取发送报告,而不是查询发送的每条消息
答案 1 :(得分:0)
我通过使用QuerySmResp
来获取投放报告来解决我的问题。
这是检查SMS消息的传递状态的代码:
QuerySmResp qresp = client.Query(_MessageID, SrcTon, SrcNpi, SrcAddr);
string _Delivery = qresp.MessageState.ToString();
MessageState
属性将显示消息的状态,并且其成员为:
无
途中
递送
过期
删除
未送达
接受
未知
拒绝