Отправка смс на 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 - за небольшое вознаграждение вам будет оказана быстрая помощь.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

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




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




Создание плагина для WordPress. Часть 2: меню и вывод из базы данных
Уроки по PHP
Верстка с помощью jQuery