@Nulltiton

Как отправить СМС сообщение с приложения C#?

Хочу попробовать отправить СМС сообщение из приложения C#, нашел несколько готовых примеров, воспользовался этим:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO.Ports;
 
namespace sms
{
    class Program
    {
        static SerialPort pt;
 
        static void Main(string[] args)
        {
            pt = new SerialPort();
            Console.WriteLine("Отправляем сообщение.");
            OpP();
            bool result;
            result = sendS("Test", "+79999999999");
 
            if (result == true)
            {
                Console.WriteLine("Сообщение отправлено успешно");
            }
            else
            {
                Console.WriteLine("Не удалось отправить смс");
            }
            Console.ReadLine();
 
            pt.Close();
 
        }
 
        private static bool sendS(string tsms, string tel)
        {
            if (!pt.IsOpen) return false;
 
            try
            {
                System.Threading.Thread.Sleep(500);
                pt.WriteLine("AT\r\n");
                System.Threading.Thread.Sleep(500);
                pt.Write("AT+CMGF=1\r\n");  
                System.Threading.Thread.Sleep(500);
            }
            catch
            {
                return false;
            }
 
            try
            {
                pt.Write("AT+CMGS=\"" + tel + "\"" + "\r\n"); 
                System.Threading.Thread.Sleep(500);
                pt.Write(tsms + char.ConvertFromUtf32(26) + "\r\n"); 
                System.Threading.Thread.Sleep(500);
            }
            catch
            {
                return false;
            }
 
            try
            {
                string recievedData;
                recievedData = pt.ReadExisting();
                if (recievedData.Contains("ERROR"))
                {
                    return false;
                }
            }
            catch { }
            return true;
        }
 
        private static void OpP()
        {
 
            pt.BaudRate = 2400; 
            pt.DataBits = 7; 
 
            pt.StopBits = StopBits.One;          
            pt.Parity = Parity.Odd; 
 
            pt.ReadTimeout = 2500; 
            pt.WriteTimeout = 2500; 
 
            pt.Encoding = Encoding.GetEncoding("windows-1251"); 
 
            pt.PortName = "COM4"; 
 
            if (pt.IsOpen)
                pt.Close();
            try
            {
                pt.Open();
            }
            catch { }
        }
    }
}

Однако компилятор выдает ошибку: 62b61fa4c5b0f578645424.jpeg
Подскажите, пожалуйста, из-за чего возникает эта ошибка и как ее можно исправить, а также каким образом можно узнать PortName моего USB-модема?
  • Вопрос задан
  • 171 просмотр
Решения вопроса 1
ProgrammerForever
@ProgrammerForever
Учитель, автоэлектрик, программист, музыкант
1) Модем есть?
2) Физически подключен?
3) Установлены нужные драйверы?
4) Подерживает AT команды? (Можно подключиться через терминал и проверить)
5) Находится на COM4? (Смотрится в диспетчере устройств, или делается код для поиска в самой программе, что проще для юзера)
pt.PortName = "COM4";
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы