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

本文关键字:命令 AT 通过 | 更新日期: 2023-09-27 18:04:16

我用c#编写了SMS应用程序。我的问题是:我想发送短信给多个用户。但是,它发送给一个用户。怎么了?

下面是我的代码:
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);
       }
    } 

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

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

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

谢谢

我认为你没有发送文本消息后所需的转义字符。您应该发送ASCII字符ESC,它是十进制27和十六进制1B。