Титла: Feeds 2 SMS Публикувано от: b2l в Jul 10, 2010, 16:04 Цел на задачата: при нови feeds да се изпраща sms.
В началото почнах със скрипта на vstoykov (http://vstoykov.hit.bg/sensors_send_sms.html ($2)), обаче греда. След това видях, че в liferea има script manager (който след търсене и четене как се ползва LUA ($2) разбрах, че е ужасен). Pingie ($2) изобщо не разбрах как работи, а това Ozeki NG SMS Gateway не стига че е за windows ами е и платено. Та май ми трябва нещо, което през 10 мин. да събира новите feeds и след това да ги тъпче в скрипта на vstoykov. Също така гледах и разни RSS to Email, ама като ми ги прати там аз кво да ги правя? Абе всякакви идеи са добре дошли :) Титла: Re: Feeds 2 SMS Публикувано от: betso в Jul 10, 2010, 20:26 В каква форма изкаш да ти изпраща feeds на sms? Само заглавията или и (съкратено) съдържание?
Ако ползваш решението на vstoykov, значи имаш PHP, а там със SimpleXML можеш да си извадиш, каквото искаш от XML-а на feed-а. А иначе можеш да кажеш на lynx да ти изплюва периодично (с cron или в цикъл, примерно) XML-a, който после конзолно да си обработиш и да го подадеш нататък. Може и аз да не съм разбрал нещо. Сподели малко повече! :) Титла: Re: Feeds 2 SMS Публикувано от: b2l в Jul 10, 2010, 20:35 Трябва да се получава смс само при нови feeds, това с lynx не доумявам как ще стане. Да, смс-а трябва да съдържа целия feed, но сега като се замисля май и само заглавията ще ми свършат работа. SimpleXML така като гледам за да го напиша, ще трябва първо да науча из основи PHP, а в момента малко не ми е до програмиране, просто разсъжденията ми убягват.
Титла: Re: Feeds 2 SMS Публикувано от: betso в Jul 10, 2010, 23:47 Ето примерен начин за извеждане на заглавията от заглавната страница на linux-bg.org:
Код А така би могъл да ги извадиш с lynx: Код: lynx -source http://www.linux-bg.org/linux-bg-news.rdf | grep '<title>' | sed -e "s/^.*<title>//;s/<\/title>.*$//" Предполагам, че има не малко решения от рода на xml2txt, които също биха ти свършили работа под команден ред. Успех! :) Титла: Re: Feeds 2 SMS Публикувано от: neter в Jul 11, 2010, 12:18 Решение може да се напише много бързо и лесно, както на PHP, така и на bash. Само да доизясним някои неща:
1. Скриптът през браузъра ли ще се ползва или искаш да го сложиш в crontab, откъдето периодично автоматично да проверява за нови записи и да ти праща sms? 2. Ако в sms-а, пращан чрез услугата mail2sms, сложим само двете задължителни полета From и Text, то сборът от символите в тези две полета може да бъде максимално 145. Т.е., ако за From въведеш feed@domain.com, за Text ти остават налични 130 символа, в които е трудно да се побере подробна информация. Така че трябва да решиш какво точно искаш да побереш в тези общо 145 символа (само заглавие на feed, или и малко текст, ако е останало място...), както и дали sms-ът ще бъде само един, в който някак да се натъпче възможно най-много и най-окастрена информация, или за всеки нов feed да се праща отделен sms. Пращането на sms-и чрез услугата mail2sms не се различава по нищо от пращането на email, като има само две разлики: 1. Трябва строго да се съблюдава дължината на изпращаната информация, тъй като позволеният брой символи в един sms е малък, а не трябва и да се прекалява с твърде голямо количество sms-и на ден, тъй като това няма да се хареса на оператора и ще ти поискат немалко пари, за да ти позволят да продължиш да пращаш много sms-и през mail2sms; 2. Изпращаната информация трябва да е на латиница, тъй като изпратеният email не минава през gsm декодерите в оператора и sms-ът няма да се чете. Ако искаш да избегнеш тези две ограничения, ще се наложи да не ползваш mail2sms, а да си изградиш sms gateway, през който да изпращаш съобщенията. За целта трябва да имаш вързан gsm апарат към gateway-а с активна sim карта. Тогава sms-ите ще се изпращат като обикновени sms-и, а не като email-и, но (както сигурно се сещаш) и ще се плаща за тях като обикновени sms-и според тарифата. Титла: Re: Feeds 2 SMS Публикувано от: b2l в Jul 11, 2010, 12:30 @neter - въх-х-х... Значи скрипта ще се стартира в cron-a, т.е. не ми трябва web. Мислех да използвам mail2sms, но ти сега ме накра да се замисля, ако feed-а е написан на бългърски дали ще получа маймуница? За From няма да слагам нищо, а текста исках да е 145 символа и те да са от съдържанието на feed-a. Достатъчно е sms-а да е един, но не съм сигурен дали ако почна да получавам целия feed на смс-и mtel ще поискат пари за това. Значи имам 17 страници, т.е. 17 feed-а и в момента се чудя как да направя да изпраща смс само при нови feeds. Горе-долу ще получвам от 2 до 8 смс-а на ден (което май не е много).
Това за sms gateway-а ще ми излезе много скъпо, за това се насочих към идеята на vstoykov. PS: Сега опитах да си пратя съобщение на БГ - не стана :(. Значи си прав. Титла: Re: Feeds 2 SMS Публикувано от: neter в Jul 11, 2010, 13:03 Полето From е задължително, така че няма как да го избегнеш. Препоръчително е ти да го зададеш, за да ти е информативно и максимално кратко, тъй като, ако не го зададеш, MTA-то ти ще си сложи потребителя, с който е изпълнена командата, като From (например backtolife@localhost), което ти харчи символи.
Относно кирилицата, текстовете ще трябва да се конвертират към латиница и тогава да се изпращат. Има решение, така че не е проблем. Лимитът за безплатно пращане на sms-и през mail2sms зависи от много неща и (доколкото знам) е силно плаващ, но 8 sms-а на ден не е никакъв проблем. Аз си пращам редовни 10 sms-а на ден, като в някои редки дни съм стигал и до 50, без да са ми казвали от оператора, че това е проблем, надявам се да не е и за в бъдеще :) Не ми стана ясно какви са тези 17 страници с feed-ове... Дай по-добре да ги видим, че да стане по-ясно за какво количество информация говорим и какви налични полета има в тези feed-ове. Ако не е хубаво да ги пускаш тук на обществено място, ми прати адресите на ЛС. P.S.: Забравих да вметна, че най-краткият вариант за полето From е "a@b", както и, че ако общият текст на съобщението е по-дълъг от 145 символа, съобщението ще бъде отрязано от оператора до 145-ия символ, а останалото няма да се прати. Съобщения, които са по-дълги от 145 символа, не увеличават броя на изпратените съобщения, така че няма да те закачат за това откъм бройка, но трябва да се внимава с големите надхвърляния на 145 символа, тъй като изпратеният email към оператора може да стане голям и това да стане причина за забележка. Титла: Re: Feeds 2 SMS Публикувано от: neter в Jul 11, 2010, 17:15 Ето ти едно решение на въпроса:
Код Понеже не ми се изписва конвертор на кирилица към латиница, в скрипта ползвам този на Google. За пращането на sms-а ползвам bash командата, тъй като не знам да има начин за махане на Subject полето при php функцията mail(), а това ще харчи символи. Задаването на From хедъра може и да не става точно така при теб (зависи какво MTA ползваш), така че изпробвай bash командата самостоятелно, за да се увериш, че работи, а ако не работи, да я напаснем за твоите нужди. Всеки feed си го слагаш в нов ред $rssfeed[номер]. Относно елементите 'element' и 'getfield' в масива $rssfeed, ето един пример от rss-а на Дарик: Код В този случай, за елемента 'element' трябва да се въведе 'item', понеже той съдържа една цялостна новина с всичките й данни (име, линк, описание, дата...), а за елемента 'getfield' трябва да се въведе 'description', ако искаш да ти праща sms с текста на новината, тъй като това поле го съдържа. Сядаш да прегледаш всеки feed поотделно, за да извлечеш нужната информация, която ти трябва за всеки $rssfeed масив, въвеждаш ги и си готов ;) P.S.: Оказва се, че PHP полето тук заменя знака '&' с '&', така че ще се наложи като копираш скрипта от тук, да промениш следните неща на реда за променливата $contentclear: '&#774;' да стане '̆' '&#365;' да стане 'ŭ' edit 0: Понеже ще пускаш скрипта в crontab, добавих и пълен път към папката, в която се намира скриптът, тъй като ще ти е нужен. Тъй като при файла на скрипта се създават и допълнителни файлове, които пазят информацията за последните записи във feed-овете, хубаво е да сложиш скрипта в отделна папка, за да не ти се мешат файловете. edit 1: Още малко доизкусуряване :) edit 2: Добавих ти в sms-а пред текста да изписва името на feed-а, което си въвел в полето 'name' за $rssfeed. Слагай имената на латиница (по това име се създава и файлът, който пази последната новина) и гледай да са кратки, за да не си харчиш символи. Титла: Re: Feeds 2 SMS Публикувано от: b2l в Jul 11, 2010, 17:59 Аз нямам пуснат mail server (може би това е чудесна причина да си пусна един такъв). Останалите неща ги направих, само че забелязах, че в cache файловете feed-a е на BG и там това с google не го разбрах. Смисъл - google може ли да превежда от кирилица на щльокавица. Понеже аз си написах една функция която ми транслира feed-овете, които са на BG в шльокавица. Горе-долу се получава (обръщам ги буква по буква) стига да няма някакви засукани изречения.
Титла: Re: Feeds 2 SMS Публикувано от: b2l в Jul 11, 2010, 18:13 @neter [_]3 [_]3 [_]3 [_]3 [_]3 [_]3 [_]3
Имай късмет да дойдеш до Варна това лято и да не се обадиш ей!!!! Всичко работи перфектно. Благодаря! PS: Само да уточня за някой, който иска да ползва скрипта, не го тествах с командата през конзола за пращане на mail защото нямам MTA, но на нейно място добавих скрипта на vstykov (като смених променливите). Титла: Re: Feeds 2 SMS Публикувано от: neter в Jul 11, 2010, 18:19 Сложих ги да се пазят в кешовете на кирилица, за да се четат по-лесно (например, ако искаш да видиш в кешовете коя е последната новина на даден feed, да си го прочетеш на кирилица). Номерът с Google е точно това - конвертиране от кирилица към латиница. Когато в транслатора превеждаш от български на английски, можеш да видиш, че има един линк "Показване на романизацията". Цъкни го и ще видиш текста конвертиран към латиница. В заявката задавам превод от български на български, за да не се превеждат думите, които са написани на латиница във feed-а. Спестява код, когато не е от значение малкото забавяне от конвертирането през Google, вместо да се конвертира веднага в кода. Но, щом си си драснал конвертор, ако ти е по-удобен, може да го вмъкнеш в кода, на мястото на заявката към Google. Ако не можеш да го вмъкнеш, дай ми кода аз да го вмъкна.
Ако имаш нужда от цял mail сървър, пусни си. Но по принцип ти е достатъчен и един exim без настройки, който няма да действа като mail сървър, но ще ти праща писмата, подадени към него с mail ;) P.S.: backtolife, това лято май няма да си вземам отпуска, но ако по някаква случайност се врътна във Варна, не очаквай да имам такъв късмет да не се обадя ;D [_]3 Титла: Re: Feeds 2 SMS Публикувано от: b2l в Jul 11, 2010, 18:48 Ами знаеш ли, сега ще пробвам с моята функция, понеже google на някой места ми връща символи от рода на: ̅, &#lt, etc. :) :)
Титла: Re: Feeds 2 SMS Публикувано от: neter в Jul 11, 2010, 19:03 Баш за тези символи ти обърнах внимание в единия едит на поста ми, че не излизат правилно публикувани тук и трябва да ги оправиш, явно не си ги оправил. Но пък и далеч не съм сигурен дали съм описал всички (описах само за символите, които транслатора връща за буквите "ъ" и "й"), така че може и да си трябва добавяне на още в скрипта.
Както и да е де, то си е по-хубаво да ползваш личен конвертор :) Титла: Re: Feeds 2 SMS Публикувано от: b2l в Jul 11, 2010, 19:12 Сооориии :) :) Сега прочетох едита. Значи аз си добавих RSS-сите, и написах имената. После във функцията на vstoykov си направих From да ми излиза от името на съответния $rssfeed, сега едитнах ̆ и другото число. А от къде да взема таблица с тези кодове? Смисъл какво да търся в google. Даже не знам как се казва това, не са ASCII кодове, някакви HTML-ски са.
Титла: Re: Feeds 2 SMS Публикувано от: neter в Jul 11, 2010, 21:15 Тръгнах да ти обяснявам кое защо излиза така и как може да се поправи, но в процеса на обясненията установих, че беше голяма грешка от моя страна да предложа конвертиране с Google, така че ето версия на скрипта със самостоятелен конвертор :)
Код
Титла: Re: Feeds 2 SMS Публикувано от: b2l в Jul 11, 2010, 21:17 //off
Дай да гледаме мача. След това ще пробвам скрипта :). Титла: Re: Feeds 2 SMS Публикувано от: neter в Jul 11, 2010, 21:30 //офтопик
Аз на световното тази година съм дал бойкот, нещо не ми се гледа, ама люпя семки пред "Хубава жена" ;D Титла: Re: Feeds 2 SMS Публикувано от: bop_bop_mara в Jul 12, 2010, 00:46 //оффтопик
//офтопикЛюпя семки не е ли и то в кавички ;D ;D ;D Супер си е световното. Ахаха, току-що от Канал 1 оплюха публично Вистата ;D ;D ;D Титла: Re: Feeds 2 SMS + Exim4 On Debian Публикувано от: b2l в Jul 12, 2010, 11:06 Така, мачовете свършиха. Сега по темата. Понеже използвам скрипта на vstoykov имам така:
Код Това бачка, но ми връща име от вида: name <> - и не знам как да махна тия скоби. Другото което е (даже май ще сменям името на темата) - сега пуснах скрипта на един Debian. Та на Debian-а имам exim4, но не мога да го конфигурирам, а ти (@neter) спомена, че не ми е нужен mail сървър, а само един MTA като exim-a. Пробвах с: Код: dpkg-reconfigure exim4-config Код
Титла: Re: Feeds 2 SMS Публикувано от: neter в Jul 12, 2010, 12:10 //извън темата
В това изречение броят на кавичките е с константна стойност. Когато сложа кавички на "люпя семки", махам кавичките от "хубава жена" ;D//офтопикЛюпя семки не е ли и то в кавички ;D ;D ;D //по темата Дай да видим какво ще върне при теб тази команда: Код Ще прегледам скрипта на vstoykov за решение на въпроса ти относно него, но така на пръв поглед класовете, които ползва, са много хубави за пращане на email, но трябва солидно да се окастрят, за да пестят символи при пращане на sms. Гледам, че освен скобите, за които говориш, в sms-а се изпраща email адресът в допълнителни ненужни за случая скоби, праща се и хедърът Subject, нищо че е празен (това, както писах и по-горе, за момента не знам как може да се махне в PHP)... Иначе, не слагай $source['name'] във $mail->FromName, понеже това ти генерира допълнителен хедър. По-добре да е в текста на sms-а. Ако си пуснеш локално MTA, ще имаш волята да го настроиш да не прави проверки на From хедъра (то така си е по подрабиране в exim), така че за From да можеш да напишеш какъвто си поискаш email, с което да си спестиш символи. В момента sms-ът от моя скрипт изглежда така: Цитат From: email@адрес Text: име_на_feed > текстНо, ако на дадения човек му е удобно, може името на feed-а да се сложи пред @ в email адреса на изпращача, с което да се спестят символите (макар че ще са само 2-3), които разделителят $delimiter (текущо зададен на ' > ') заема, и текстът на sms-а да стане така: Цитат From: име_на_feed@a Text: текстТогава, за променливата $smsfrom (според този пример) трябва да се зададе '@а', променливата $delimiter трябва да се остави празна, а system() редът ще изглежда така: Код Въпрос на вкус. Титла: Re: Feeds 2 SMS Публикувано от: b2l в Jul 12, 2010, 12:28 Код: No message, no subject, hope that's ok Това ми върна терминала, а аз мога да добавя и едно "no sms". Титла: Re: Feeds 2 SMS Публикувано от: neter в Jul 12, 2010, 12:45 А със скрипта на vstoykov получаваш ли sms по същото време, когато не получаваш sms от mail командата? Понеже в редки случаи, но баш точно в момента, mail2sms услугата нещо се бъзика и някои получават sms-и, а други не. Та пробвай двата начина един след друг, за да си сигурен, че проблемът с неполучения sms е в exim-а.
Откъм инсталацията на exim, по-добре махни с --purge всичко, което в момента имаш инсталирано с exim в името, и след това инсталирай пакетите exim4 и mailutils. Ако пак ти задава въпроси при инсталацията, кажи точно какво си отговорил. Титла: Re: Feeds 2 SMS Публикувано от: b2l в Jul 13, 2010, 09:13 Само момент, че оплесках дебиана :D. Мисля, че ще го преинсталирам :D. Само, моля ти се, не ме питай защо :D :D :D.
Титла: Re: Feeds 2 SMS Публикувано от: neter в Jul 13, 2010, 09:19 Въх! Дай да видим дали не става за оправяне, за да не си играеш да преинсталираш. Може при чистенето на exim-а да си зачистил повече неща, отколкото е трябвало. Много трудно ми беше да си завъртя думите без да използвам думата "защо" ;D
Титла: Re: Feeds 2 SMS Публикувано от: b2l в Jul 13, 2010, 09:23 Код: #apt-get remove --purge mail* Мисля, че няма оправяне :D. Титла: Re: Feeds 2 SMS Публикувано от: neter в Jul 13, 2010, 14:21 Опа, нещо се разсеях и забравих проблема тук. Та, дали е оправимо или не, зависи от това какви пакети са махнати с двете команди. Ако дадеш списък с махнатите пакети, може да ги върнем обратно. Освен ако не преинсталираш вече :)
Титла: Re: Feeds 2 SMS Публикувано от: b2l в Jul 13, 2010, 14:32 Опа, нещо се разсеях и забравих проблема тук. Та, дали е оправимо или не, зависи от това какви пакети са махнати с двете команди. Ако дадеш списък с махнатите пакети, може да ги върнем обратно. Освен ако не преинсталираш вече :) Вече съм готов аз. Китка съм - чиста инсталация, само че пак не получавам смс при командата: Код: echo 'Tova e proba' | mail -a 'From: a@b' 359xxxxxxxxx@sms.mtel.net/code] Титла: Re: Feeds 2 SMS Публикувано от: neter в Jul 13, 2010, 15:06 Това, че си с частен адрес, не е проблем, но може да има проблем, ако няма rDNS за публичния адрес, през който минаваш. Все пак, пробвай да пренастроиш exim с dpkg-reconfigure, като в настройките задай "Интернет сайт" (не локално или smarthost), и за адреси, на които да слуша за SMTP връзки, задай "127.0.0.1; ::1". Другите настройки ги остави по подразбиране. След което пробвай отново да пратиш sms.
P.S.: Между другото, да не се окаже, че доставчикът ти реже конекциите на 25-ти порт. Ти, всъщност, защо си с частно IP? Доставчикът ли ти дава такова или си зад рутер, до който имаш достъп? Титла: Re: Feeds 2 SMS Публикувано от: b2l в Jul 13, 2010, 18:16 Мога да пробвам само на работа, понеже сървъра ми е там, ама ще погледна утре, ако ми остане време. Или може би събота и неделя.
ПС: Ами, да зад рутер съм. Той рутира цялата мрежа на фирмата. Ест. аз нямам достъп до него (поне за сега). Не реже 25 порт понеже фирмата си имаме mail сървър, но още не знам как да го настроя този exim4 към нашия мейл (дори не знам дали може да се направи така). ПС2: Иначе по другия начин всичко си работи, само където бях казал, че source['name'] ми върща ime <> - т.е. още един интервал и двете скоби, по-малко и по-голямо. Титла: Re: Feeds 2 SMS Публикувано от: neter в Jul 13, 2010, 19:31 //извън темата
Ест. аз нямам достъп до него (поне за сега).Ми щом не ти дават достъп, вземи си го сам ;D Ама няма да обсъждаме как. //по темата Настрой exim-а така, както ти написах в предния пост, и ако няма някакъв филтър в рутера, който да ти пречи, ще тръгне. Пробвах във виртуалката одеве чиста инсталация на Debian и настройка на exim за целта, да видя дали не пропускам нещо, и всичко трябва да е наред. Титла: Re: Feeds 2 SMS Публикувано от: b2l в Jul 13, 2010, 19:46 Мерси neter. Сега пробвах на ubuntu-то в къщи. Конфигурирах exim-a точно както си казал и при:
Код: echo 'Tova e proba' | mail -a 'From: a@b' 359xxxxxxxxx@sms.mtel.net Титла: Re: Feeds 2 SMS Публикувано от: b2l в Jul 14, 2010, 09:02 Добре, значи на Дебиана не работи. Къде да търся проблема, при доставчика ми на интернет ли?
Титла: Re: Feeds 2 SMS Публикувано от: neter в Jul 14, 2010, 11:49 Ако пощенският сървър на фирмата, за който спомена, се намира зад или във въпросния рутер, който ви рутира мрежата там, значи не е от доставчика, тъй като тогава и пощенският сървър щеше да има проблем. Ако картинката е такава, значи има някаква филтрация в рутера, така че трябва да приказваш по въпроса с достъпимащите. Ако все пак не ти дадат позволение или има някакъв друг непреодолим проблем, ще се наложи да използваш външен SMTP сървър, за да пращаш писмата. Вариантите в този случай са два:
1. Ползваш скрипта на vstoykov, като намираме някакъв начин да окастрим още sms-а от излишната информация; 2. Настройваш exim да изпраща пощата чрез smarthost, при което exim на практика ще действа като SMTP клиент. Препоръчвам ти този вариант, тъй като той ще ти позволи да си ползваш директно mail командата, както щеше да можеш да правиш, ако можеше да пращаш писмата без smarthost, ще си скъсиш кода в скрипта, тъй като няма да се налага да ползваш външните SMTP класове, няма да си играеш и с орязване на тези класове за скъсяване на sms-а, а и ще имаш готова система за пращане на писма, така че няма да се налага да правиш нищо и да добавяш допълнителен код в бъдещи скриптове, в които ще ти се наложи да пращаш писмо. Конфигурирането на пращане на писмата със smarthost става по следния начин: 1. В "dpkg-reconfigure exim4-config" задаваш "пощата се изпраща чрез smarthost; няма локална поща"; 2. За адреси, на които да се чака за SMTP връзки, отново си задаваш "127.0.0.1 ; ::1" 3. В прозореца, където ще ти поиска IP адрес или име на smarthost-а въвеждаш пощенския сървър, който ще използваш за пращане на писма. Можеш да сложиш и порт, ако този пощенски сървър слуша на порт, различен от 25; 4. Ако пощенският сървър, който ще ползваш за smarthost, изисква автентикация, във файла /etc/exim4/passwd.client добавяш следния ред: Цитат име_или_IP_на_smarthost:потребител:паролаСлед което рестартираш exim и писмата с mail командата ще започнат да се пращат с exim през smarthost-а. Титла: Re: Feeds 2 SMS Публикувано от: b2l в Jul 15, 2010, 09:25 Ц!!! Нещо бъркам. Това за 127.0.0.1; ::1 го пиша, и за SMTP сървър пиша gmail-ския, т.е.: smtp.gmail.com::587 ама останалите полета празни ли да ги оставя понеже пита за разни System Mail Name, Other destination for witch mail is accepted, Visible domain name for local users, и накрая има дали да split-не някакви неща, и още един въпрос на който да отговоря с да или не (Keep number of DNS)?
Титла: Re: Feeds 2 SMS Публикувано от: b2l в Jul 15, 2010, 09:42 МАШАЛA :D. Стана, само, само че по друг начин. Значи първо си избирам:
Код: mail sent by SMARTHOST; received via SMTP or fetchmail Код: System Mail Name: e.g. company.com Код: Type Machine handling outgoing mail for this host (smarthost): smtp.gmail.com::587 После отваряме: /etc/exim4/passwd.client и добавяме: Код: gmail-smtp.l.google.com:yourAccountName@gmail.com:y0uRpaSsw0RD И накрая: Код: vi /etc/exim4/conf.d/transport/30_exim4-config_remote_smtp_smarthost След това пускаме един: Код: # update-exim4.conf Код: /etc/init.d/exim4 restart Код: echo 'Tova e proba' | mail -a 'From: a@b' 359xxxxxxxxx@sms.mtel.net Много ми е нескопосан поста, ама в момента малко бързам, после като имам 5 мин. ще го оправя ;). ПС; Като цяло гледах от този урок тука: http://wiki.debian.org/GmailAndExim4 обаче не съм добавял последния ред: Код: # echo 'YOUR-USER-NAME@LocalHost: yourAccountName@gmail.com' >> /etc/exim4/email-addresses Титла: Re: Feeds 2 SMS Публикувано от: b2l в Jul 15, 2010, 10:45 Така, ето го проблема. Аднах скрипта в crontab-a. Cron-а го пуска през 10 мин. И аз през 10 мин получавам еднакви смс-и. И още нещо много странно, когато почнах да пускам скрипта ръчно ми даваше това:
Код: eclipse:/home/eclipse/rss2sms# php sms.php Всяко второ пускане ми дава че sh не може да намери i, а всяко първо, че имало грешка на line 0, 1 ??? ПС: И явно заради това, че ползвам smarthost всички смс-и за From нямат S@D, както съм го задал в променливата $smsfrom, а имат username-a ми за smtp-то на gmail, т.е. email-la-mi@gmail.com. Титла: Re: Feeds 2 SMS Публикувано от: b2l в Jul 15, 2010, 12:18 Виж само какво получих в gmail пощата ми:
Цитат Delivery to the following recipient failed permanently: Титла: Re: Feeds 2 SMS Публикувано от: neter в Jul 15, 2010, 13:40 Пусни ми така изписания скрипт в прикачен файл, да видим да не е станала някаква грешка при копирането на кода от тук. Иначе да, нормално е Gmail да слага за From твоя email адрес, вместо този, който подаваш с mail командата - презаписват хедъри, за да не се изпращат глупости. По-добра работа за smarthost ще ти върши пощенският сървър на вашата фирма, ако имаш акаунт в него, и ако администрацията няма против да пращаш такива писма през него.
P.S.: Всъщност, не съм абсолютно сигурен, че в случая Gmail ти е презаписал From хедъра, щом изглежда по този начин: Цитат From: Cron Daemon <email.address@gmail.com>Да не си оставил променливата $smsfrom празна? И защо има Subject хедър в това писмо, което показваш? В mail командата, която дадох, няма Subject хедър. Титла: Re: Feeds 2 SMS Публикувано от: b2l в Jul 15, 2010, 13:50 Само телефона съм си изтрил :). Не. че Марчето го няма де, ама все пак :)
Титла: Re: Feeds 2 SMS Публикувано от: neter в Jul 15, 2010, 17:05 Ахааа... имал съм две бъгчета. Едното е, че проверявах дали съм достигнал последния нов запис от feed-а, сравнявайки съдържанието на променливите $content и $lastentry, но докато съдържанието на $lastentry е със стрипнати тагове, това на $content не е. Това е водело до изпращане на писма за всички записи, вместо само за новите. Сега се проверяват двете стрипнати стойности.
Другият бъг е, че подавах текста на sms-а директно с echo към mail командата, и така е ставал проблем при наличието на разни специални знаци, а от там и грешките, които си виждал в конзолата. Сега текстът на sms-а първо се escape-ва за bash, след което се подава към mail командата, с което и този проблем се решава. Редактирал съм скрипта от първа страница, но ти го давам поправен и тук като прикачен файл. Титла: Re: Feeds 2 SMS Публикувано от: neter в Jul 15, 2010, 18:42 Между другото, докато си правих тестове със скрипта, се флууднах едно хубаво с около 200 sms-а наведнъж, от които получих малко над 100 (може би 110; не съм сигурен, понеже в началото тръгнах да ги трия и не помня колко затрих, преди да реша да изчакам да се получат всички, а всички 200 успяха тогава да излязат от опашката), и сега при опит да си пратя sms, получавам красивият отговор:
Цитат 452 Recipient limit exceeded. Try again laterДосега не бях проверявал има ли такъв лимит, знаех само за забележките, които се правят към сървъра-изпращач. Така че е хубаво човек да си има едно наум за този лимит от около 110 sms-а, след което ще получи отказ за (предполагам) няколко часа, а може и денонощие (все пак пише да се опита по-късно, а не, че е перманентно блокиран). От друга страна, раздвоен съм по въпроса за присъствието на този лимит, понеже притежателят на телефона е с вързани ръце в една такава ситуация. Но пък ако от съпорта могат да реагират адекватно при различни случаи на флуудване, си е начин да се поспестят малко ресурси... Не знам, както и да е :) Титла: Re: Feeds 2 SMS Публикувано от: b2l в Jul 15, 2010, 20:42 Да не флудя излишно темата, ама и без това тия дни ходя с по един час по-рано на работа, за да тестрам именно този скрипт. Утре като отида ще пусна новата версия :D която ми закачи в предния пост и ще гледам резултати :). А иначе и аз днеска се префлудих със смс-и. По едно време чак ми писна :):D
Титла: Re: Feeds 2 SMS Публикувано от: neter в Jul 15, 2010, 22:21 Когато тестваш, тествай с email адрес, вместо с gsm-а, докато станеш доволен от резултата, че да не стават грешки. Аз още съм блокиран и се чудя дали да не звънна на съпорта, току виж се съгласили да ме отблокират по-бързо. Но, откъм From хедъра, с Gmail си е така - пренаписват хедъра, така че, ако ползваш Gmail акаунт за пращане на писмата, за изпращач ще ти се изписва дългият email адрес, което ще ти харчи още малко символи. Потърси си друг пощенски сървър, ако искаш да спестиш тези символи.
Титла: Re: Feeds 2 SMS Публикувано от: b2l в Jul 16, 2010, 08:59 Цитат 452 Recipient limit exceeded. Try again later Това къде се вижда, смисъл къде го получаваш това съобщение. Скрипта в момента не ми праща нищо. Изтрих от cachefolder-a един от файловере и го пуснах на ново, но не получих нито едно съобщение. Иначе си пратих смс от сайта на mtel и го получих, т.е. мисля, че мога да получавам смс-и. ПС: Ниет, явно и мен са ме блокирали понеже: Код: echo 'Tova e proba' | mail -a 'From: a@b' 35988xxxxxxx@sms.mtel.net Титла: Re: Feeds 2 SMS Публикувано от: neter в Jul 16, 2010, 09:26 Виждам го в опашката на пощенския сървър, от който се опитвам да пратя sms-а. Ти няма как да го видиш, тъй като твоите съобщения стоят в опашката на Gmail сървъра.
Точно в момента им звънях по проблема, тъй като все още съм блокиран. Един там ми каза, че ще направи нещо и, като приключим разговора, 1-2 минути по-късно да си рестартирам телефона. Не се сещам каква връзка може да има нулирането на лимита и рестартирането на телефона (този лимит едва ли се кешира в апарата ми, а новото свързване към мрежата да задейства някакви системи там... би трябвало лимитът да се чете динамично), та ми се струва, че не ме е разбрал за какво говоря и се опитвам да се свържа пак, но не вдигат. Да не им звъниш и ти сега и да са заети с теб? На тълпи с блокирани mail2sms услуги ще станем :D Титла: Re: Feeds 2 SMS Публикувано от: b2l в Jul 16, 2010, 09:43 Виждам го в опашката на пощенския сървър, от който се опитвам да пратя sms-а. Ти няма как да го видиш, тъй като твоите съобщения стоят в опашката на Gmail сървъра. Хахаха. Не, не им звъня - а тоя дето ти е казал да си рестартираш телефона явно е бил само от съпорта, дано да каже на някой от по-разбиращите. Тука се сещам как helpdesk-а на Interbild карат хората като нямат нет да си рестартират рутерите или XP-тата :D. (явно в повечето случаи помага, щом продължават да го правят ;) ). Кажи после дали има ефект и ако, Да, да се обадя и аз. Титла: Re: Feeds 2 SMS Публикувано от: b2l в Jul 16, 2010, 10:31 Оле, оле започнах да получавам sms-ите от вчера...ужас, и пак няма спиране...
Титла: Re: Feeds 2 SMS Публикувано от: neter в Jul 16, 2010, 11:17 Късметлия. Аз още съм блокиран.
Я да сложа опция човек да си избира по колко sms-а да получава от feed-овете. Малко след дъжд качулка се получи за нас двамата, но поне ще свърши работа за други, които решат да ползват скрипта, и ако решат да се флууднат, ще знаят, че сами са решили така. Редактирах скрипта в поста от първата страница и прикачения файл в поста ми по-горе. При стойност '1' скриптът ще изпраща един sms от този feed (с последната новина), независимо колко нови записа има. При стойност '2' ще изпраща 2 sms-а (с последната и с предпоследната новина, ако има такава) и т.н. P.S.: Изпращането на sms-и през услугата mail2sms и през сайта на Mtel минава през различни алгоритми (обърни внимание, че sms-ът се получава от друг номер), така че не може да се използва за проверка дали е блокирана, поради достигане на лимит, услугата mail2sms за този телефон. От друга страна, captcha-та за вход в сайта на Mtel е дупчеста, та се чудя дали да не драсна версия на скрипта с пращане на sms-ите през формата в сайта на Mtel ;D Титла: Re: Feeds 2 SMS Публикувано от: b2l в Jul 16, 2010, 11:23 От друга страна, captcha-та за вход в сайта на Mtel е дупчеста... Амм това вярно ли е? Смисъл "дупчеста" - не знам как ще я генерираш в скрипта, а й после номер на който да се получава смс-а. Абе ако стане кажи :). Титла: Re: Feeds 2 SMS Публикувано от: neter в Jul 16, 2010, 14:10 Опа, тук се изказах малко прибързано, без да проверя текущото състояние, а отдавна не бях влизал в сайта на Mtel. Преди числата в captcha-та можеха да се познаят по съдържанието в html-а на страницата за вход, но виждам, че сега това е оправено. Но пък има една друга дупка в сигурността на тази captcha, която все още не е оправена. Но няма да обсъждаме тези неща тук, така че, ако някой иска скрипт, който праща sms-и през формата на сайта на Mtel, да си го напише сам :) Е, ти можеш да си провериш личните съобщения след малко де :P
Иначе, и мен щели да ме отблокират скоро, ама трябвало да минат 24 часа от случката. Щом теб те отболираха толкова бързо без заявка, а аз и със заявка трябва да изчакам минаването на 24-те часа, значи всичко е оставено на автоматизация и няма възможност за намеси отстрана на съпорта при различни случаи на флуудване. С което се накланям към мнението, че това рязане на получателите не е добро решение. Но... така или иначе, това мнение е като глас в пустиня :) Титла: Re: Feeds 2 SMS Публикувано от: b2l в Jul 20, 2010, 14:29 Нямат ли край тези смс-и. Баси как съм се нафлудил само :D. neter ти оправи ли се, там с лимита за получаване и изпращане?
Титла: Re: Feeds 2 SMS Публикувано от: neter в Jul 20, 2010, 14:46 О, да, отдавна вече се изчистих. Но аз имам контрол над опашката в пощенския сървър, а изпратените към Mtel съобщения бяха само 200. Съмнявам се, че съобщенията се задържат кой знае колко в Mtel преди да се получат на телефона ти, така че предполагам всичко, което остава да ти се прати, е в опашката на Gmail. Може да им пишеш (не мога да те упътя къде) за някакво съдействие по изчистване на тази опашка, току виж ти обърнали внимание :)
Титла: Re: Feeds 2 SMS Публикувано от: b2l в Jul 20, 2010, 14:52 Да, email-а ще бъде много забавен - "Може ли да ми изчистите опашката на пощенската кутия че си флудя телефона със смс-и" :D :D :D
Ще изчакам още няколко дена, дано да преминат ;) Титла: Re: Feeds 2 SMS Публикувано от: b2l в Jul 22, 2010, 18:37 Ако някой все пак се интересува лимита на сървъра на mtel за изпращане на sms-и е: 100 броя на ден. Сървъра е активен от 10:30. :D Вече 4-ти ден се флудя :D
Титла: Re: Feeds 2 SMS Публикувано от: b2l в Jul 30, 2010, 09:03 Въпросче. Понеже ми писна да се флудя със смс-и реших преди да постигна правилния резултат да си пращам email-ли. И какво правя:
Този ред: Код го заменям с този: Код
Пуснал съм corn-а да рънва скрипта през 10 мин: Код: 10 * * * * /usr/bin/php /home/eclipse/rss2sms/sms.php Код: echo 'Tova e proba' | mail -a 'From: a@b' 359ххххххххх@sms.mtel.net получавам sms. Обаче не получавам email-ли. Титла: Re: Feeds 2 SMS Публикувано от: neter в Jul 30, 2010, 10:20 Още ли се флуудиш? Не се ли изчисти? Послената версия на скрипта не би флуудила, освен ако не се промени стойността на 'maxsend'.
Не получаваш email-и, понеже From адресът a@b не съществува, и Gmail навярно го реже. Затова пък защитата на Mtel не реже писма, идващи с измислен From хедър, и затова получаваш sms-а. А може да се получава и някакъв спор в Gmail заради това, че ползваш твоя адрес за автентикация към smarthost-а и едновременно с това през smarthost-а се праща писмо към същия този адрес с друг хедър. Пробвай да пратиш писмо към друг mail сървър. Титла: Re: Feeds 2 SMS Публикувано от: b2l в Jul 30, 2010, 10:30 Преди два дена ми писна от смс-и и си спрях mail2sms услугата. И в пощенската кутия на gmail получих около 1 000 писма, че не били пристигнали до телефона ми. След това 3 дена затишие и сега пак си пусках mail2sms. Смених адреса на променливата $smsto. Сега ще наблудавам какво ще стане.
Титла: Re: Feeds 2 SMS Публикувано от: b2l в Jul 30, 2010, 12:19 Работи, праща ми мейли на пощата в abv.bg. Сега ще видим как е с смс-ите.
Титла: Re: Feeds 2 SMS Публикувано от: b2l в Jul 31, 2010, 13:48 Абе има нещо, но не знам къде е. Праща ми един и същи смс по няколко пъти. Пример:
12:10 ми изпраща 10 смс-а. 12:20 ми изпраща 4 смс-а който вече съм получил. Цифрите са измислени, но смс-ите бяха еднакви. Махнах си телефона и сложих пощата, изчаках да мине време и там така се получи. Титла: Re: Feeds 2 SMS Публикувано от: neter в Jul 31, 2010, 15:41 Я пак ми пусни копието на скрипта, което ползваш, за да видя къде е проблемът. И, ако можеш, дай ми описание на реална случка с реални данни. Ако не искаш да споделяш нещо тук, на лични ;)
Титла: Re: Feeds 2 SMS Публикувано от: b2l в Jul 31, 2010, 15:47 Аммм в понеделник става ли? Понеже е на работа това, което последно беше преправил. Тъкмо тогава ще пусна скрипта и като се изпълни ще направя няколко снимки и ще ти ги покажа. Днеска е ден за плаж, а утре за пикник :) :).
Титла: Re: Feeds 2 SMS Публикувано от: b2l в Aug 03, 2010, 09:10 Малко се забавих, но вчера беше началото на новия месец и ме занимаваха с глупости. Така, ето малко картинки:
(http://img442.imageshack.us/img442/3087/10437284.png) (http://img821.imageshack.us/img821/738/58766071.png) (http://img833.imageshack.us/img833/886/63884662.png) (http://img413.imageshack.us/img413/79/31356933.png) (http://img195.imageshack.us/img195/2413/75411467.png) (http://img717.imageshack.us/img717/8898/87829898.png) Както се вижда мейла се повтаря, т.е. получавам за мейл един и същи RSS, но през различно време. И имам чуството, че обикаля първите няколко масива, в които съм описал RSS-сите, праща тези мейли и започва от начало, но това няма как да го разбера дали е така. Титла: Re: Feeds 2 SMS Публикувано от: neter в Aug 03, 2010, 11:30 Прати ми и скрипта с така въведените RSS-и. Между другото, миналият път, когато ми даде твоето копие, забелязах, че беше въвел някои имена на RSS-и с интервали, а текущо в скрипта трябва да са без интервали, иначе може да стане проблемът, който описваш, тъй като ще стане грешка при проверката на кеша за RSS-ите с интервали в имената и пак ще ти се прати sms за тях.
Титла: Re: Feeds 2 SMS Публикувано от: b2l в Aug 03, 2010, 11:39 Ок, ето го.
Титла: Re: Feeds 2 SMS Публикувано от: neter в Aug 03, 2010, 13:39 Не си взел последната версия на скрипта, в който това вече беше фикснато. Можеш да теглиш последната версия от прикачения файл в този ($2) пост. Актуализирвах прикачения файл след всяка промяна.
|