читалка заголовков писем на googlemail
Читалка заголовков мэйлов с googlemail:
#!/bin/sh URL='https://mail.google.com/mail/feed/atom' curl --silent -u name@googlemail.com:passwd $URL | \ grep -v Gmail | \ while read line do echo $line | grep "<title>" 1>/dev/null \ && TITLE=`echo $line | sed -e 's/<title>//' -e 's/<\/title>//'`;\ echo $line | grep "<name>" 1>/dev/null \ && NAME=`echo $line | sed -e 's/<name>//' -e 's/<\/name>//'`;\ echo $line | grep "<email>" 1>/dev/null \ && EMAIL=`echo $line | sed -e 's/<email>//' -e 's/<\/email>//'` && \ echo $(echo $NAME "<"$EMAIL">" $TITLE) done
P.S. Лучшего применения чем прикрутить эту штуку на dzen не нашел :-)
(2 голоса)
- 1336 просмотров
Страница для печати

А еще спасибо за упоминание dzen (до этого не сталкивался с ним). Очень удобная штука =))
Повесил в cron на каждые 15 мин и радуюсь теперь =)))
Мля... Написал...
Через некоторое время заметил, что не пашет... Проверил в /var/log/syslog там есть отметки о запуске, но почему-то dzen не появляется...
А хочется чтобы если почта есть появлялся dzen
Подскажи как это сделать, плиз. (чтобы например раз в 15 минут проверялась почта и если она есть то запускался dzen. я именно с cron'ом не могу разобраться :((( )
С кроном, уже ооочень давно ничего не делал. И подозреваю , что крон в Убунту может иметь собственную семантику. Может обойтись без крона? Для эксперементов, кострукция должна быть примерно такая:
(while true; do checkmail ; echo "New Mails: " $N; \ readfeeds ; sleep 900; done)\ | dzen2 -p -x $WHEREX -w $WIDTH -fg $FG -bg $BG -fn $FONT -l 20 -u \ -e 'button3=exit;button1=togglecollapse;button4=collapse;button5=uncollapse'N - сюда записывает количество мэйлов в ящике
WHEREX - координата появления dzen по оси Х на экране
WIDTH - ширина
FG - передний цвет (FG='green')
BG - задний цвет (BG='black')
3я кнопка мышки - уберет dzen
колёсико - свернуть развернуть
Позже выложу свой скрипт для почты на dzen.
Это я тоже сообразил сделать =))) Такой скрипт можно в автозагрузку кинуть и все дела =))) Но хотелось по нормальному в кроне сделать =) в Ubuntu - anacron
А у меня не пашет... :((
В имени есть точка, а в пароле такие знаки как & и \. Пробовал предварять их \, а также брать всю строку после -u в "" и ''. Все равно не помогает. :(
Curl возвращает вот это:
Т.ж. пробовал использовать не "googlemail", а "gmail"... Но все безрезультатно :(((
Где может быть загвоздка?
Попробуйте urlencode-ить эти символы.
// darkk
ЗЫ: система Ubuntu 8.04
Возьми тогда в одинарные ковычки: ' '. Напиши получилось ли. Доведу тогда скртптик до ума.
В первом посте я же писал: Пробовал предварять их \, а также брать всю строку после -u в "" и ''.
Т.е. предварял \ (обратным слешем), и "" (двойными кавычками), и '' (одинарными)...
Для инфы:
$ curl --version
curl 7.18.0 (i486-pc-linux-gnu) libcurl/7.18.0 OpenSSL/0.9.8g zlib/1.2.3.3 libidn/1.1
Protocols: tftp ftp telnet dict ldap ldaps http file https ftps
Features: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz
Ок , попробуем тогда локализировать проблемку.
Зайди в броузере (firefox) по ссылке https://mail.google.com/mail/feed/atom
По идее должно будет появиться приглашение ввести свой логин и пароль. Вводишь, если все работает, тогда в твоем случае имеет место действительно неверная передача пароля из-за символов $ и /.
Если приглашение не появится, то проблема имеет место до передачи пароля.
На всякий случай, попробуй отдельно пароль взять в одинарные кавычки ' ' и стартани curl c опцией -v, и вместо --silent попробуй -S. Это выведет в терминал более подробные сообщения.
И еще только что заметил: первая строчка #!/bin/sh
Напиши о результатах
Вчера, когда с мобилы проверял почту, все понял. Дело в том, что я несколько раз подряд ввел не верный пароль (подзабыл его) и теперь у меня капча вываливается... Т.е. пока не введу пароль и код с капчи меня гмайл не пустит. В этом-то и проблема. А опции -v и вместо --silent - -S уже пробовал еще вчера, но там ничего не нашел подозрительного. #!/bin/sh и т.п. мне не нужно, я не как скрит это дело оформлял, а как функцию в ~/.bashrc.
Щас попробовал "прокурлить", вернул то, что надо. Капча отошла от дела и все ок.
А строку после -u (я заменил ее на --user, удобнее так ;)) экраниловал '' (одинарными кавычками).
Функцией получил такой код:
function gmail() { URL='https://mail.google.com/mail/feed/atom' curl --silent --user 'name@googlemail.com:passwd' $URL | grep -v Gmail | while read line do echo $line | grep "<title>" 1>/dev/null && TITLE=`echo $line | sed -e 's/<title>//' -e 's/<\/title>//'` echo $line | grep "<name>" 1>/dev/null && NAME=`echo $line | sed -e 's/<name>//' -e 's/<\/name>//'` echo $line | grep "<email>" 1>/dev/null && EMAIL=`echo $line | sed -e 's/<email>//' -e 's/<\/email>//'` && echo $(echo $NAME "<"$EMAIL">" $TITLE) done }т.е. никакой принципиальной разницы =))
Прогрнал эту функцию, получил список новых писем =)))
ЗЫ: Я даже не знал, что гугля будет капчу выдавать при вводе пароля :( сорри.
ЗЫЫ: Спасибо за помощь и за опубликованный код =)))))))))))))))))))))))
ЗЫЫЫ: Странновато работает пмайл в этом плане: если отметить письмо как не прочитанное и на него уже был ответ, то он в атом выкидывает и это письмо (которым отвечали)
Отправить комментарий