如何使用SMPP和C#从SMSC获取交付报告

时间:2013-11-21 09:34:42

标签: c# smpp

我在Vs 2010中使用SMPP客户端C#向SMSC发送短信。我只是无法弄清楚如何获取已发送邮件的发送报告。我使用QuerySM来获取消息的状态,但即使我向未使用的号码发送短信,它也会返回OK状态。

以下是获取投放报告的代码:

QuerySm deliver = new QuerySm(_MessageID, SrcTon, SrcNpi, SrcAddr);
client.Query(deliver);

2 个答案:

答案 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属性将显示消息的状态,并且其成员为:

途中

递送

过期

删除

未送达

接受

未知

拒绝