Страница 1 из 1

Help! Как отправить СМС из VBA Excel

СообщениеДобавлено: 20 июл 2012, 14:57
sergv
Помогите организовать отправку СМС из VBA-Excel через comtube

Думаю в таком направлении.... Но тут надо приделать MD5 к сигнатуре.
Код: Выделить всё
  Set SendHttp = CreateObject("MSXML2.ServerXMLHTTP")
  SendHttp "GET", "http://api.comtube.ru/scripts/api/sms.php?action=send&number=12345678&username=login&signature=........", False
  SendHttp.send

Re: Help! Как отправить СМС из VBA Excel

СообщениеДобавлено: 20 июл 2012, 17:49
sd
sergv писал(а):Помогите организовать отправку СМС из VBA-Excel через comtube

Думаю в таком направлении.... Но тут надо приделать MD5 к сигнатуре.
Код: Выделить всё
  Set SendHttp = CreateObject("MSXML2.ServerXMLHTTP")
  SendHttp "GET", "http://api.comtube.ru/scripts/api/sms.php?action=send&number=12345678&username=login&signature=........", False
  SendHttp.send

Посмотрите вот этот пост. Правда, там описано создание подписи на С#, но мало ли, может чем пригодится.

Re: Help! Как отправить СМС из VBA Excel

СообщениеДобавлено: 23 июл 2012, 12:05
sergv
Спасибо, но я не смогу связать это с vba.
Может есть какая-то универсальная программа отсылающая смс с компьютера, чтобы к ней можно было привязать excel?

Re: Help! Как отправить СМС из VBA Excel

СообщениеДобавлено: 23 июл 2012, 12:08
sd
sergv писал(а):Спасибо, но я не смогу связать это с vba.
Может есть какая-то универсальная программа отсылающая смс с компьютера, чтобы к ней можно было привязать excel?

К сожалению, программы по Windows, которая бы отправляла сообщения через нас нет. По крайней мере, мы о такой программе не знаем. Я так понимаю, у вас проблема с созданием подписи? С MD5 разобрались?

Re: Help! Как отправить СМС из VBA Excel

СообщениеДобавлено: 23 июл 2012, 15:20
sergv
Да. Проблема с кодированием хвоста в ехсел. Так и не разобрался.
Пытался отправлять через автовызов странички с СМС отправкой из вба и автозаполнение полей, но почему-то тоже не срабатывает.
Так же пытался отправить по почте вручную, чтобы потом порпобовать отправлять автоматом через на емайл через ВБА. Все возвращаются с ошибкой.
Слишком много затрачивается времени и усилий на решение этой задачи. Видимо придется использовать более дорогие рабочие методы. Хотя, конечно, хочется подешевле с комтуба.

зы: Использую офис 2007.

Re: Help! Как отправить СМС из VBA Excel

СообщениеДобавлено: 23 июл 2012, 15:35
sd
sergv писал(а):Да. Проблема с кодированием хвоста в ехсел. Так и не разобрался.
Пытался отправлять через автовызов странички с СМС отправкой из вба и автозаполнение полей, но почему-то тоже не срабатывает.
Так же пытался отправить по почте вручную, чтобы потом порпобовать отправлять автоматом через на емайл через ВБА. Все возвращаются с ошибкой.
Слишком много затрачивается времени и усилий на решение этой задачи. Видимо придется использовать более дорогие рабочие методы. Хотя, конечно, хочется подешевле с комтуба.

зы: Использую офис 2007.

К сожалению, я не могу ничего подсказать по поводу VBA, так как с ним не сталкивался...
Что касается отправки сообщений через email , то что за ошибка возвращается?

Re: Help! Как отправить СМС из VBA Excel

СообщениеДобавлено: 23 июл 2012, 18:38
sergv
одно и тоже все время. Возвращается такое письмо.
Dear user!
Your request to send SMS is not elaborated

The reason: Failed to authorize by email
The request should be made in the following way:
° In subject of letter you should indicate:
° your login
° number or several numbers comma separated, up to 100 numbers. (It is not necessarily if you have attached file with telephone numbers)
° time (in format HH:MM) or date and time of dispatch (DD.MM.YYYY HH:MM)
° number of sender (in format ani= number of sender)
° notification’s mode (if you would like to have notification, you should write the word silent in the subject of letter).
° In case you did not attach file with numbers and message text to the letter, the contents of letter should not be empty because it is a text of your message
° Sender number should consist of phone number up to 20 digits or text written by latin digits and not exceed 11 symbols. You may use such symbols as: (point), _ (underlining), - (). Sender number should be one of the following numbers: '79032208855, Comtube.com'. In case you indicated other sender number it would be used the number by default - 'Comtube.com'. If you want to use other sender number you should send request with such number to our contact center
° This letter should be sent from e-mail address indicated on your page "My profile – My contacts" and authorized
° If there is attached file, it should be simple text file. Also it would be better if this file will be in UTF-8 format. Otherwise it is possible the text message will be unreadable. The size of attached file should not exceed 1 Мb.
° The quantity of numbers should not exceed 200, and quantity of tasks should be no more than 50 per day. If quantity of numbers is exceeded only 200 numbers will be elaborated and the rest of them will be ignored. If you would like to make more SMS bulk you should send request to our contact center and indicate quantity of numbers and quantity of tasks.
The variants of request for sending text messages:
° You should indicate numbers in the subject of letter and message text in the contents of letter
° You indicate numbers in attached file (not in the subject of letter) where each number is in separate slot. Message text should be indicated in the contents of letter
° You do not indicate numbers in the subject of letter and the contents of letter is empty. In this case you should indicate numbers and message text in attached file
Format of numbers and message text:
° You should indicate number and message text in each slot divided by semicolon. For example,
°
° 79161234567;Dear Vyacheslav! 79265678923;Dear Andrey!
° Numbers and message text should be indicated in the following format:
° ---START SMS---
°
° TO:
° 79031234567
° 79252345678
° 79163456789
° BODY: Happy New Year!
° ---END SMS---
°
° ---START SMS---
° TO: 79163456789
° BODY: Dear Peter!
° Give my money back!
° ---END SMS---
Before dispatch you should assure that you have enough money on your account for task performance. Otherwise it will be broken off. In order to continue sending you need to credit account and start sending manually.
Best regards, "Comtube".
Tel/fax: +7 (495) 961-00-08, SIP ID: 100000
E-mail: support@comtube.com

все делал по образцу viewtopic.php?f=29&t=131
в теме указывал
login 79261234567
или
login 79261234567 silent
в письме тест
отправлял с ящика указанного в моем профиле на комтубе. Хотя пробовал и с других.

Re: Help! Как отправить СМС из VBA Excel

СообщениеДобавлено: 23 июл 2012, 18:44
sd
sergv писал(а):одно и тоже все время. Возвращается такое письмо.
Dear user!
Your request to send SMS is not elaborated

The reason: Failed to authorize by email

А, у вас еще в настройках интерфейс на английском. Вы, если хотите, на странице "Мой профиль - Настройка аккаунта" можете язык на русский поменять. Тогда и письма на русском приходить будут.
Теперь по существу. Ошибка "Failed to authorize by email" говорит о том, что вы не указали на странице "Мой профиль - Мои Контакты" рядом с вашим email'ом галку "Разрешить авторизацию". Поэтому наша система не может понять, что это за пользователь написал запрос. Я сейчас в ваших настройках эту галку включил напротив вашего email'а. Так что все теперь должно работать.

P.S. Вы, я надеюсь, в теме вместо слова login указывали sergv?

Re: Help! Как отправить СМС из VBA Excel

СообщениеДобавлено: 23 июл 2012, 21:54
sergv
sd писал(а):А, у вас еще в настройках интерфейс на английском. Вы, если хотите, на странице "Мой профиль - Настройка аккаунта" можете язык на русский поменять. Тогда и письма на русском приходить будут...

проверил. Стоит русский, как видимо и стоял. Ничего до этого не трогал.
sd писал(а):Теперь по существу. Ошибка "Failed to authorize by email" говорит о том, что вы не указали на странице "Мой профиль - Мои Контакты" рядом с вашим email'ом галку "Разрешить авторизацию". Поэтому наша система не может понять, что это за пользователь написал запрос. Я сейчас в ваших настройках эту галку включил напротив вашего email'а. Так что все теперь должно работать.

Спасибо.
sd писал(а):P.S. Вы, я надеюсь, в теме вместо слова login указывали sergv?

да + номер телефона на который отсылать смс.

зы: почту проверил - работает. Буду пробовать программку на ВБА с отсылкой емайла.

Re: Help! Как отправить СМС из VBA Excel

СообщениеДобавлено: 24 июл 2012, 11:03
sergv
Может кому будет интересно в последствии. Реализовал через функцию отправки email. Все замечательно работает.

Код: Выделить всё
Public Function sendEmail(emailTo As String, emailSubject As String, emailBody As String, Optional VarDebug As Boolean) As Integer

'emailTo - адресат. (в данном случае sms@comtube.ru)
'emailSubject - тема письма (логин телефон)
'emailBody - собственно само сообщение
' Optional VarDebug - если не нужно ставьте ноль или можно ничего не ставить.

On Error GoTo Err_sendEmail
Dim oMSG As Object
Dim oConfig As Object
Dim CFields As Object
Dim strBody As String

Set oMSG = CreateObject("CDO.Message")
Set oConfig = CreateObject("CDO.Configuration")
Set CFields = oConfig.Fields
Set oMSG.Configuration = oConfig

CFields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
CFields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.yandex.ru" 'smtp сервер вашего емайла
CFields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
'CFields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
CFields("http://schemas.microsoft.com/cdo/configuration/sendusername") = "'Login@ya.ru" 'почта с которой отправляете
CFields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password" 'пароль
CFields("urn:schemas:mailheader:content-language") = "windows-1251"
CFields.Update

oMSG.To = emailTo
oMSG.From = "Login@ya.ru" 'почта с которой отправляете (подпись)
oMSG.Subject = emailSubject
oMSG.BodyPart.Charset = "windows-1251"
'oMSG.AddAttachment "c:\temp\Test0.rtf"
oMSG.TextBody = emailBody
oMSG.Send

sendEmail = 1

Exit_sendEmail:
    Set CFields = Nothing
    Set oConfig = Nothing
    Set oMSG = Nothing
    Exit Function

Err_sendEmail:
    sendEmail = 0
    If Not IsNull(VarDebug) Then If VarDebug Then MsgBox (Err.Description)
    Resume Exit_sendEmail
End Function

функция возвращает 1, если сообщение успешно отправлено. В противном случае ноль.

И самое главное предварительно не забыть включить
sd писал(а):...на странице "Мой профиль - Мои Контакты" рядом с вашим email'ом галку "Разрешить авторизацию".