Главная   Downloads   Разное  
Excel   FB   Почта и SMS 
Яндекс

Сегодня: 19 ноя 2018, Понедельник


Отправка Почты и SMS

      Задался вопросом отправки почты и SMS из супервайзора, перерыл кучу вариантов,  оказалось что проще некуда. Естественно компьютер со скадой должен быть подключен к интернету.

  • Идём на бесплатный почтовый сервис, например http://www.mail.ru/ можно и на корпоративный, если имеется. Mail.ru правда после отправки десятка писем подряд, выдаёт сообщение: You have exceeded message sending limit, and i will not accept any messages from you within 15 minutes
  • Создаём учётную запись, например cx-supervisor@mail.ru с паролем qwerty
  • Настраиваем Outlook Express для работы с почтовым ящиком, почта должно свободно работать, никакие настройки системы, брандмауэры и прочее в сети не должны блокировать ящик и естественно microsoft.com. Если не получается, напрягаем сисадмина. Outlook Express нужен только для проверки настроек компа и сетки.
  • Далее создаём файл VB скрипта, например email.vbs, внутри текст:
Код:
Set objEmail = CreateObject("CDO.Message")
objEmail.From = "cx-supervisor@mail.ru"
objEmail.To = "Получатель@mail.ru"
objEmail.Subject = "Тест"
objEmail.Textbody = "проверка связи"
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.mail.ru"
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusername") = "cx-supervisor@mail.ru"
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "qwerty"
objEmail.Configuration.Fields.Update
objEmail.Send

 

  • objEmail.To = "Получатель@mail.ru"  естественно тот кому письмо предназначается, если адресатов несколько, перечисляем всех через запятую
  • .........configuration/sendusername  и  ...........configuration/sendpassword  необходимость этих параметров зависит от того кто предоставляет услугу почтового ящика, mail.ru например защищается от рассылки спама с чужих адресов, и для отправки почты требуется авторизация, на некоторых почтовиках будет работать и без этих строк, Без этих строк будет работать если предварительно запустить Outlook Express и проверить почту. Я не силён в интернете, могу и ошибаться в выводах.
  • objEmail.Subject = "Тест"  Тема письма
  • objEmail.Textbody = "проверка связи"   текст письма, можно прикрепить ещё и какие-либо файлы, описывать как это делается нет никакого желания, в инете достаточно описаний на эту тему, достаточно поискать по кусочку текста из приведённого скрипта.

 

      Когда убедимся что наш скрипт работает и отправляет почту, Приладить его к Супервайзору не составит труда, скрипт нормально работает  внутри Супервайзора с использованием текстовых точек там где необходимо. Не стоит запускать несколько скриптов подряд, на выполнение скрипта требуется время, нужен какой-то интервал между запусками.

      Кстати мыло и пароль в скрипте настоящие (не знаю как долго проживёт этот ящик), подставте свой адрес в свойство objEmail.To и протестируйте, у меня работает без проблем.

      Теперь о SMS, сейчас почти все операторы связи предоставляют услугу пересылки SMS с почтового ящика абонента на телефон. Чтобы включить возможность приема сообщений с электронной почты на телефон сети БИЛАЙН GSM (и узнать адрес своего телефона), нужно сделать звонок по бесплатному номеру 06849909

      Вам придет SMS-сообщение, в котором будет указан присвоенный вашему телефону адрес электронный почты, что-то вроде Вашномер@sms.beemail.ru. Сообщения, отправленные по электронной почте на этот адрес, будут приходить на ваш телефон в виде SMS. Слишком длинные сообщения будут разбиты на несколько SMS. В течение некоторого времени после получения первого SMS вы сможете запросить следующее при помощи буквы, указанной в конце сообщения.

      Идею я позаимствовал у программы PrevedSMS, (просто первая попалась, хотя в инете полно инфы на тему отправки SMS через почту)  Вы можете скачать эту программу и в её хелпе найти необходимого Вам оператора и инструкцию по подключению услуги, можно правда поискать и на сайте своего оператора. Пробовал отправлять SMS с помощью скрипта себе и своим сослуживцам, работает, а на почтовый ящик отправителя приходит сообщение от оператора о доставке SMS, т.е. фактически получение сообщения фиксируется. Но вот проблема с временем доставки сообщения, от нескольких секунд, до нескольких часов, в случае проблем у оператора.

 

      SMS несложно отправлять через GSM модем или через обычный мобильник подключенный к компьютеру как модем с помощью AT команд модема. Для экспериментов я использовал свой мобильник, моторола RAZR V3i, удобен тем что подключается к USB порту обычным стандартным кабелем, и ещё и подзаряжается через этот кабель. После установки дров, мобильник числится в системе как Motorola USB Modem на виртуальном СОМ порту. Супервайзер поддерживает прямую работу с СОМ портом, и управлять модемом из скрипта не составит никакой сложности, правда я так и не смог получить в супервайзор ответы модема... Набросал простенький пример под свой телефон.

      Чтобы проверить как работает телефон нужно воспользоваться какой либо терминальной прогой. <CR> и подобное это ASCII символы с кодом менее 20. для других телефонов команды могут немного различатся.

 

     Отправляем на модем команды:

 

  1. ATE0<CR>  наверно это что-то связанное с инициализацией модема. Должны получить ответ  <CR><LF>OK<CR><LF>
  2. AT+CMGF=1  переключение в текстовой режим.
  3. AT+CMGS="+79037328379" команда с номером телефона кому отправляем SMS.
  4. Privet   текст сообщения, можно разбить на несколько строк.
  5. <SUB>  Команда на отправку сообщения #1A, через некоторое время получим сообщение о доставке SMS <CR><LF>+CMGS: 47<CR><LF><CR><LF>OK<CR><LF>

 

     Чтобы отправить следующее сообщение достаточно повторить шаги 3, 4, 5.  С отправкой сообщения на русском языке сложнее, и размер сообщения сильно ограничен.

 

  1. ATE0<CR>
  2. AT+CMGF=1  переключение в текстовой режим.
  3. AT+CSCS="UCS2" переключение в юникод.
  4. AT+CMGS="+79037328379"  номер телефона.
  5. 041F04400438043204350442002  это текст сообщения, соответствующий слову "Привет".
  6. <SUB>  Команда на отправку сообщения #1A,

Переход:  
Powered by © Oleg Samuilov