На нашем сайте мы используем cookie для сбора информации технического характера и обрабатываем IP-адрес вашего местоположения. Продолжая использовать этот сайт, вы даете согласие на использование файлов cookies. Здесь вы можете узнать, как мы пользуемся файлами cookies.
Я согласен
логотип upread.ru

Отправка смс на C#


Всегда интересно создать программу, управляющую внешним подключаемым устройством. В качестве последнего сегодня у нас будет выступать usb модем huawei от мтс. Мы заставим его отправлять сообщения - с помощью программы Microsoft Visual C# 2010 Express и языка C#. Приложение получилось несложное и понятное, поэтому комментариев будет самый минимум.

Итак, непосредственно за отправку отвечает метод sendS, принимающий качестве аргументов две строки - текст смс и номер телефона получателя. В строке 42 заставляем модем прислушиваться к нам, в строке номер 44 - ставим текстовый режим отправки смс. Строка 54 отвечает за добавление номера телефона получателя, а само сообщение - строка 46. В строке 80 могут быть и другие значения - 4800, 9600, 28800 или 56000; 81 - может быть 8 и 9; таймауты (86-87) - еще можно поэкспериментировать с 1000 или 5000, а вот больше уже не стоит. В строке 89 устанавливаем кодировку, а в 91 - номер порта данный номер находим в диспетчере устройств - соответствующий нашему модему.

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("Microsoft Visual C# 2010 Express", "+79213332211");

            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 = "COM3"; 

            if (pt.IsOpen)
                pt.Close();
            try
            {
                pt.Open();
            }
            catch { }
        }
    }
}
Небольшое дополнение. Программка отказывалась работать, пока модем был подключен к сети (работал интернет). А вот при отключенном интернете - все было нормально. Причем смс отправлялись независимо от того, был ли запущен Коннект Менеджер или нет.

Вот так просто можно отправить смс с помощью C# и usb модема. Если у вас стались какие-либо вопросы или необходима помощь/программа по/на си шарп, то вы всегда можете написать на up777up@yandex.ru - за небольшое вознаграждение вам будет оказана быстрая помощь.




тегистатьи IT, си шарп, смс, модем





Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.




Знакомство с Unity3D
Мегафон: как выйти из минуса


© upread.ru 2013-2019
При перепечатке активная ссылка на сайт обязательна.
Задать вопрос
письмо
Здравствуйте! Вы можете задать мне любой вопрос. Если не получается отправить сообщение через эту форму, то пишите на почу up777up@yandex.ru
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.