sam063rus пишет: первый толковый пример с LuaSocket.
ага незачто
Цитата
sam063rus пишет: ещё бы смс также просто отправлять было))
А это просто. Только это делается через СМС провайдеров, которые иногда могут быть платными. как правило API таких провайдеров довольно простое, в виде http запросов, разобраться можно.
GSM модем или мобильный телефон с возможностью подключения к компьютеру.
1. какой сервер? платный/бесплатный?? 2. для чего??? ------------------------------------------------------------- честно говоря, ожидал какой-нибудь анонимный односторонний сервер без авторизации: как говорится, "пульнул смс и забыл". Без всяких телефонов, просто зная ip сервера и пару функций из его API.
Michael Bulychev пишет: Сервер - это программа, которая рассылает смс через модем или телефон, абсолютно бесплатная.
спасибо, это я и так знаю. насчёт "бесплатная" - далеко - нефакт. В каждом конкретном случае - по-разному. Так и штатное API МегаФона можно было бы использовать.
теперь понятно зачем телефон: в общем, как я понял: берёшь телефон, платишь за него, подключаешь к компу, ставишь кучу непонятного софта и отправляешь куда-то за свой счёт с этого номера смс. Так???
s_mike@rambler.ru пишет: Сергей, при помощи этой библиотеки можно общаться далеко не со всеми почтовыми серверами.
Значит нужно выбрать тот сервер с которым она работает
Серверов, не нуждающихся, например, в TLS/SSL, уже мало и количество их уменьшается. Обычно это древние сервера. Дописывать библиотеку для поддержки новых стандартов, как я понимаю, никто не собирается.
sam063rus пишет: теперь понятно зачем телефон: в общем, как я понял: берёшь телефон, платишь за него, подключаешь к компу, ставишь кучу непонятного софта и отправляешь куда-то за свой счёт с этого номера смс. Так???
Да именно так. Халявы не будет. И это уже вопрос не к нам а к сотовым операторам. Однако, если текст СМС не важен, а имеет значение сам факт его появления, вы можете схитрить. Тот же mail предоставляет услугу оповещения по СМС о письмах, совершенно бесплатно. Но в смс будет указано только от кого оно пришло, без какого либо текста.
sam063rus пишет: теперь понятно зачем телефон: в общем, как я понял: берёшь телефон, платишь за него, подключаешь к компу, ставишь кучу непонятного софта и отправляешь куда-то за свой счёт с этого номера смс. Так???
Да именно так. Халявы не будет. И это уже вопрос не к нам а к сотовым операторам. Однако, если текст СМС не важен, а имеет значение сам факт его появления, вы можете схитрить. Тот же mail предоставляет услугу оповещения по СМС о письмах, совершенно бесплатно. Но в смс будет указано только от кого оно пришло, без какого либо текста.
Так как текст смс менять нельзя а можно только адрес отправителя, идея в том что можно отправлять почту с разных адресов в зависимости от ситуации. И в самом адресе указать причину, типа BUY@anydomen.ru или SELL@anydomen.ru
sam063rus пишет: теперь понятно зачем телефон: в общем, как я понял: берёшь телефон, платишь за него, подключаешь к компу, ставишь кучу непонятного софта и отправляешь куда-то за свой счёт с этого номера смс.
Тут ведь вопрос ещё в надёжности доставки самого сообщения: доставка e-mail или СМС через интернет менее надёжна, чем GSM.
Надо делать так, как надо. А как не надо - делать не надо.
Старатель пишет: доставка e-mail или СМС через интернет менее надёжна, чем GSM.
тут ещё можно поспорить. )))
в общем, чувствю самый оптимальный и бесплатный вариант - e-mail. А на компьютере - поставить, что-то вроде Mailru.Agent или Outlook - и тогда оповещения не потеряются и будут вовремя и на виду.
--------------------------------------------
Кстати, в качестве бесплатной альтернативы СМС, думаю, стоит рассмотреть старую добрую "аську" (ICQ) - надо только сделать под неё толковое API
в общем, задача сводится к тривиальной: отправка ICQ-сообщений по интернет с помощью соответствующего бесплатного API. Вот вам и аналог смс-оповещений))))
sam063rus пишет: в общем, задача сводится к тривиальной: отправка ICQ-сообщений по интернет с помощью соответствующего бесплатного API. Вот вам и аналог смс-оповещений))))
А если интернет на машине с терминалом отвалился? Как узнаете об этом прискорбном факте? Наверное, хотя бы на такие случаи стоит прицепить еще и телефон или модем для отправки смс.
Дмитрий пишет: А если интернет на машине с терминалом отвалился?
то и торговля отвалится.
К тому же, можно сделать, что-то watchdog-таймера на основе очерёдности (по времени) прихода "асек". так называемая "побудка" - если вовремя не пришло сообщение - значит "бЯда! полный ахтунг на все 4 колеса"
------------------------------ Объясняю упрощенно: ------------------------------------------ Основная идея в том, что Вы сажаете скрипт клиент-сервера с динамическим адресом на КВИК на компе дома. и скрипт клиент-сервера - на смартфон или планшет или нотебук --------------------- В результате КВИК сообщит Вам о любых событиях со скоростью передачи информации по интернет. -------------------------- Вы можете тоже послать команду КВИКУ. Все работает быстро и практически бесплатно. ----------------------
от мобильных торговых систем такой способ отличается тем, что торгует мощная система QUIK а не ее обрезанный клон на смартфон Загрузка трафика для смартфона нулевая
есть OnDisconnect() функция обратного вызова. Понаписали то... Блин, мне бы и е-мейла хватило, но библиотека забугорная, без русского хелпу. Мне, как непрограммеру долго придётся копаться. Спасибо за примеры!
Дмитрий пишет: А пароль от почтового ящика, с которого идет отправка, разве не надо прописывать? Что-то я не нашел его в примере.
Большинство публичных SMTP серверов не требуют пароля.
Если требуется с паролем, можно так:
Код
gSPath = getScriptPath()
............................................................
end
smtp_send(Settings, "TEST")
День добрый! Запустил ваш код. Получил
no field package.preload['socket'] no file '\socket.lua' no file '\socket.luac' no file '.\socket.lua' no file '\init.lua' no file '\socket.dll' no file '.\socket.dll' no file '\loadall.dll'
luasoсket предварительно был загружен. Некоторых из указанных файлов в поставке нет. Как быть?
Дмитрий пишет: А пароль от почтового ящика, с которого идет отправка, разве не надо прописывать? Что-то я не нашел его в примере.
Большинство публичных SMTP серверов не требуют пароля.
Если требуется с паролем, можно так:
Код
gSPath = getScriptPath()
............................................................
end
smtp_send(Settings, "TEST")
День добрый! Запустил ваш код. Получил
no field package.preload['socket'] no file '\socket.lua' no file '\socket.luac' no file '.\socket.lua' no file '\init.lua' no file '\socket.dll' no file '.\socket.dll' no file '\loadall.dll'
luasoсket предварительно был загружен. Некоторых из указанных файлов в поставке нет. Как быть?
Здравствуйте, Ошибка означает что скрипт не может найти модуль socket. Он должен быть там же где и скрипт.
В том и закавыка. В поставке люасокет небыло socket.dll. Нашел в сети но похоже то что нужно. Простите за безграмотность - скажите где его взять можно?
s_mike@rambler.ru пишет: Серверов, не нуждающихся, например, в TLS/SSL, уже мало и количество их уменьшается. Обычно это древние сервера. Дописывать библиотеку для поддержки новых стандартов, как я понимаю, никто не собирается.
Главное не отчаиваться и слишком быстро не сдаваться. Качаем модуль LuaSec: Проект: https://github.com/brunoos/luasec Бинарники можно взять тут: http://love2d.org/forums/viewtopic.php?f=5&t=76728. Нужны 2 файла - ssl.dll и ssl.lua. Использует библиотеки OpenSSL libeay32.dll и ssleay32.dll. Скачать, если нет, и не забыть обеспечить к ним доступ - через окружение (PATH) или можно кинуть в папку с QUIK.
function sslCreate()
local conn =
{
sock = socket.tcp(),
connect = function(self, host, port)
local r, e = self.sock:connect(host, port)
if not r then return r, e end
self.sock = ssl.wrap(self.sock, {mode = 'client', protocol = 'tlsv1'})
return self.sock:dohandshake()
end
}
local fnIdx = function(t, key)
return function(self, ...)
return self.sock[key](self.sock, ...)
end
end
return setmetatable(conn, {__index = fnIdx})
end
... и отправляем:
Код
socket.smtp.send
{
from = ...,
rcpt = ...,
source = ...,
server = "smtp.mail.ru",
port = 465,
user = "user",
password = "password",
create = sslCreate
}
И еще вкратце, что это за безобразие такое. Вся соль в возможности smtp.send() luasocket'а (см. доки) задать свою функцию создания сокета для отправки сообщения (create = sslCreate), который по умолчанию делается библиотекой просто как socket.tcp(). Мы делаем то же самое, но только обертываем его в подмененном методе connect, где нужно "договориться" с сервером по протоколу SSL. Всё. Еще в этой функции код для доступа к остальным методам сокета, ведь далее luasocket будет работать с ним как со стандартным.
Никто не обратил внимание на мое решение, а напрасно. Зачем отсылать что-то на сторонний сервер, почему не поставить этот сервер на своем компе и забирать эти сообщения у своего сервера? Быстро, безопасно и бесплатно. Подумайте на досуге.
Николай Камынин пишет: Никто не обратил внимание на мое решение, а напрасно. Зачем отсылать что-то на сторонний сервер, почему не поставить этот сервер на своем компе и забирать эти сообщения у своего сервера? Быстро, безопасно и бесплатно. Подумайте на досуге.
Потому что нее у всех дома белый IP-адрес, а выделять за деньги немногие хотят. Как вариант выбирать подключение к стороннему stun-серверу и т.п. Но это слишком большой геморрой, чтобы рядовой трейдер морочился с этим.
В развитие идеи могу подсказать поднять домашний сервер на IPv6. например через teredo.
"Mail на SMS" Стоимость услуги в МТС =0руб Еще в 2008 подключил. Компьютер может СМСки слать на телефон. 7912ххххххх@sms.ural.mts.ru (для некоторых регионов отличается)
пробовал мучить луасокет для отправки почтовых сообщений. в итоге самый простой вариант - консольная программа для отправки почты (cmail, blat) и команда os.execute
Если кто ещё думает о получении уведомлений от квика о сделках, то вот моё решение - это мессенджер Телеграм. По-моему, удобно - клиент есть для всех мобильных платформ, бесплатно. В общем сплошные плюсы.
Есть хорошая обёртка для отправки писем lua-sendmail: https://github.com/moteus/lua-sendmail Ей потребуется luasec, который в уже собранном виде можно взять из ссылки из третьего поста вот такого топика: http://lua.2524044.n2.nabble.com/Luasec-for-Windows-td7671151.html Там несколько скомпилированных ssl.dll - для Lua 5.1, 5.2 и 5.3. Файлы libeay32.dll и ssleay32.dll пришлось на одном компе ( WinXP ) положить в C:\Program Files\Lua\5.1\clibs и заработало, а на других компах ( Win8, Win10 ) удалось только копированием в папку с Quik'ом, иначе прилетала такая ошибка: "error loading module 'ssl.core' from file 'C:/Program Files (x86)/Lua/5.1/clibs/ssl.dll': Не найден указанный модуль"
С помощью sendmail можно слать письма и с серверов, требующих ssl/tls ( порт по-умолчанию 465 ) Вот примеры для mail.ru и gmail.com:
Код
local sendmail = require("sendmail")
local result,error = sendmail{
from = 'from@mail.ru',
to = 'to@some.domen',
server = {
ssl = {
protocol = "sslv3",
verify = {"none"},
options = {"all", "no_sslv2"},
},
address = 'smtp.mail.ru';
user = 'from@mail.ru';
password = '***';
},
message = { subject = "Тема", text = "текст", },
}
local result,error = sendmail{
from = 'from@gmail.com',
to = 'to@some.domen',
server = {
ssl = {
protocol = "tlsv1",
verify = {"none"},
options = {"all" },
},
address = 'smtp.gmail.com';
user = 'from@gmail.com';
password = '***';
},
message = {
subject = "Тема",
text = [[
Some
Text
]],
file = 'C:\some.file',
}
}