通过C#用AT命令发送短信

时间:2011-08-03 10:06:42

标签: c# sms

我在C#中编写过短信应用程序。我的问题是:我想向多个用户发送短信。但是,它正在发送给一个用户。有什么问题?

这是我的代码:

public void openPort()
    {
        port.Close();
        port.PortName = "COM11";
        port.ReceivedBytesThreshold = 1;
        port.BaudRate = 115200;
        port.DtrEnable = true;
        port.Open();
     }
  public void sendSMS(string mmobil)
  {
       this.mobil = mmobil;
       port.WriteLine("AT\r");
        port.WriteLine("AT+CMGF=1\r");
        port.WriteLine("AT+CMGS=\"" + mmobil + "\"\r");
        port.WriteLine("TEST" + '\x001a');
  }

  static void Main(string[] args)
    {


 List <string>mymobil= new List<string>();
        mymobil.Add("+316207XXX");
        mymobil.Add("+316141XXX");

 foreach (string mobil in mymobil)
       {

           openPort();
           sendSMS(mobil);
       }
    } 

3 个答案:

答案 0 :(得分:1)

我建议你首先阅读设备用户手册,我认为你发送第一个短信后应该有一个延迟可能设备返回你必须读取它以清除缓冲区,然后再发送。这完全取决于您使用的设备。

答案 1 :(得分:0)

如果您使用的是第三方SMPP提供商,则必须要求他们允许发送多个用户,否则请使用“;”每个号码。

谢谢

答案 2 :(得分:0)

我认为您不会在短信后发送所需的转义字符。你应该发送ASCII字符ESC,其中十进制为27,十六进制为1B。