Использование GSM-модуля WISMO228 для отправки почты.

Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Ответить
Нашел транзистор. Понюхал.
Сообщения: 194
Зарегистрирован: Сб ноя 07, 2009 15:27:59

Сообщение kushman »

Имеется GSM-модуль WISMO228. Задача - отправить с его помощью электронную почту. Нашел статью, в которой описывается как это делается: http://wireless-e.ru/articles/technolog ... _02_38.php

См. Пример 2: Отправка E-mail-сообщений c помощью протокола SMTP.
Делаю все как там сказано, с единственным отличием в том, что у меня МТС, но после команды at+wipdata=2,1,1 в окне терминальной программы перестают отображаться символы, и при попытке что-либо напечатать появляется ошибка 500 5.5.1 Invalid command. У кого имеется опыт работы с таким (или подобным) модулем, подскажите, в чем может быть проблема?
Заранее благодарен.
Вложения
wismo228.jpg
(101.6 КБ) 822 скачивания
Реклама
Мудрый кот
Аватара пользователя
Сообщения: 1817
Зарегистрирован: Пн ноя 29, 2010 15:58:43

Сообщение igor-x »

возможно это особенность mail.ru ? он требует предварительной авторизации.
попробуйте с почтовиком попроще(например свой smtp server поставить), а потом на майл вернутся можно если получится
Реклама
Нашел транзистор. Понюхал.
Сообщения: 194
Зарегистрирован: Сб ноя 07, 2009 15:27:59

Сообщение kushman »

Попробовал рамблер. Теперь вот такая ошибка возникает. Может с сим-картой что-то не так?
Вложения
1.jpg
(96.08 КБ) 509 скачиваний
Мудрый кот
Аватара пользователя
Сообщения: 1817
Зарегистрирован: Пн ноя 29, 2010 15:58:43

Сообщение igor-x »

а рамблер чем лучше? у всех этих серверов требуется авторизация.
читайте RFC-2554 или ставьте свой смтп сервер .
Реклама
Эиком - электронные компоненты и радиодетали
Мучитель микросхем
Сообщения: 447
Зарегистрирован: Ср сен 26, 2012 14:12:47
Откуда: Київ

Сообщение Cheba »

После at+wipdata=2,1,1 происходит CONNECT, т.е. данные просто передаются в сокет серверу.
У вас всё работает, просто теперь нужно изучить протокол работы с SMTP сервером (ага, и в том числе и с TLS :tea: )
В простейшем случае, если сервер не требует авторизации, то единственная команда, которую ждёт сервер, это EHLO <FQDN клиента>
Вот эту строку и надо вводить в терминале, иначе в ответ будет только 5ХХ Bad Command.
То, что при этом в терминале нет эха ( не отображаются символы) - это тоже правильно, если хотите видеть вводимое, включите локальное эхо в терминальной программе.
Реклама
Нашел транзистор. Понюхал.
Сообщения: 194
Зарегистрирован: Сб ноя 07, 2009 15:27:59

Сообщение kushman »

Так ведь после того как модем ответит на команду EHLO server, можно авторизоваться, используя AUTH PLAIN. Но он почему то не отвечает на эту команду.
Реклама
Мучитель микросхем
Сообщения: 447
Зарегистрирован: Ср сен 26, 2012 14:12:47
Откуда: Київ

Сообщение Cheba »

Модем ничего не знает ни про SMTP, ни про PLAIN AUTH.
Он просто тупо пересылает байты из одного конца в другой, до тех пор пока его не попросить делать что-то другое. Возьмите на компе и сделайте
telnet <ваш любимый почтовый провайдер> 25
и без модема отладьте те данные, которые будут передаваться и приниматься. Ещё раз, модем ( и уж симка тем более) там абсолютно не при чём.
А на рамблер надо вовсе не на smtp.rambler.ru ходить.

Код: Выделить всё

$ dig MX rambler.ru

;; лишнее порезано

;; QUESTION SECTION:
;rambler.ru.                    IN      MX

;; ANSWER SECTION:
rambler.ru.             86400   IN      MX      5 imx1.rambler.ru.
rambler.ru.             86400   IN      MX      10 imx2.rambler.ru.

;; лишнее порезано
А smtp.rambler.ru сразу пытается открыть TLS соединение, и, не найдя начала SSL инициализации, сразу тупо закрывает соединение.

Код: Выделить всё

$ telnet smtp.rambler.ru 25
Trying 81.19.77.167...
Connected to smtp.rambler.ru.
Escape character is '^]'.
220 mail.rambler.ru ESMTP ready
EHLO billgates.com
250-mail.rambler.ru
250-SIZE 31457280
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-AUTH PLAIN LOGIN CRAM-MD5
250 STARTTLS
Connection closed by foreign host.
Нашел транзистор. Понюхал.
Сообщения: 194
Зарегистрирован: Сб ноя 07, 2009 15:27:59

Сообщение kushman »

Проблема решилась, оказывается загвоздка была только в окончании строки. В HyperTerminal установил специальную галочку, и все заработало как часы.
Но появилась и другая проблема. Подключил модуль к микроконтроллеру по UART-у, команды он прекрасно принимает, вызов работает без проблем, а с СМС и почтой есть проблемы. Начать думаю стоит с простого, с СМС. Ниже приведена функция отправки сообщения. Между командами делаю большую задержку, чтобы модуль однозначно успел ее переварить. Сообщения если и доходят то через раз, и иногда с неправильными символами, и часто приходит просто буква U с двумя точками сверху)) В чем тут может быть загвоздка?

Код: Выделить всё

void Send_SMS(void) {

    delay_ms(20000);
    printf("AT+CREG=1\r\n");
    delay_ms(30000); 
    printf("AT+CMGF=1\r\n");
    delay_ms(30000);   
    printf("AT+CMGS=\"+79119999999\"\r\n");
    delay_ms(30000); 
    printf("SMS from Atmega8 and Wismo228!\r\n");  
    delay_ms(30000); 
    UART_Transmit(0x1A);
    delay_ms(2000);  
    send_lcd(set_second_line, "SMS Sending!");
}
Ответить

Вернуться в «Интеграция с ПК»