Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Fetchmail  (Прочитано 2585 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Сперанский

  • Автор темы
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 4062
  • Dictum ac factum
    • Просмотр профиля
Fetchmail
« : 16 Май 2012, 10:17:12 »
Создал статью с удобным способом проверки новых писем на почтовом ящике. Не без изъяна- безопасность хромает, если кто знает способ защиты- смело правьте раздел.

Оффлайн wanoska

  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
Re: Fetchmail
« Ответ #1 : 28 Май 2012, 09:50:48 »
Спасибо, получилось. Только с правами chmod 600 ~/.fetchmailrc

Оффлайн deleter24

  • Любитель
  • *
  • Сообщений: 51
    • Просмотр профиля
Re: Яндекс почта и notify-send
« Ответ #2 : 06 Ноябрь 2013, 23:37:53 »
Спасибо, это то, что нужно, только не получается настроить.
Создал ~/.fetchmailrc, прописал туда вот это:
set daemon 60
skip imap.yandex.ru proto imap
user 'igorek.sm@yandex.ru', with password '*************'
Потом создал ~/checkmail.sh, скопировал туда первую половину скрипта (ту, которая для яндекса), ничего там не менял.
Дальше присвоил права 700, разрешил исполнение и дал команду в терминал:
./checkmail.shА он мне в ответ:
deleter@Acer-Aspire-5734Z:~$ ./checkmail.sh
./checkmail.sh: line 7: let: div = 2 - для: ошибка синтаксиса: ожидается операнд (error token is "для")
Что я сделал не так?

Оффлайн Сперанский

  • Автор темы
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 4062
  • Dictum ac factum
    • Просмотр профиля
Re: Re: Яндекс почта и notify-send
« Ответ #3 : 07 Ноябрь 2013, 10:32:34 »
deleter24, видимо что то недокопировал, покажи
cat ~/checkmail.sh

Оффлайн deleter24

  • Любитель
  • *
  • Сообщений: 51
    • Просмотр профиля
Re: Re: Яндекс почта и notify-send
« Ответ #4 : 07 Ноябрь 2013, 12:56:26 »
deleter@Acer-Aspire-5734Z:~$ cat ./checkmail.sh
#!/bin/bash
#--------------Проверка почтового ящика на сервере yandex.ru--------------------
checkmail=`fetchmail -c imap.yandex.ru`
all=`echo $checkmail | cut -d " " -f 1`
readed=`echo $checkmail | cut -d ' ' -f 3 | sed s/\(//g`
acc1=`echo $checkmail | cut -d ' ' -f 6`
let "div = $all - $readed"
if [ $div != 0 ] 2>/dev/null; then
if [ $div -eq 1 ]; then
notify-send "Электропочта" "Для $acc1 одно новое письмо" -t 20000
elif [ $div -eq 2 -o $div -eq 3 -o $div -eq 4 ]; then
notify-send "Электропочта" "Для $acc1 $div новых письма" -t 20000
else
notify-send "Электропочта" "Для $acc1 $div новых писем" -t 20000
fi
 
fi

Оффлайн Сперанский

  • Автор темы
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 4062
  • Dictum ac factum
    • Просмотр профиля
Re: Re: Яндекс почта и notify-send
« Ответ #5 : 07 Ноябрь 2013, 14:05:42 »
Покажи
fetchmail -c imap.yandex.ru

Оффлайн deleter24

  • Любитель
  • *
  • Сообщений: 51
    • Просмотр профиля
Re: Fetchmail
« Ответ #6 : 07 Ноябрь 2013, 14:22:12 »
Все, проблему решил. Оказывается, дело было в аутентификации. Провел ее через сервер pop.yandex.ru, порт 110, т.к. без SSL. Соответственно, и в самом скрипте исправил imap.yandex.ru на pop.yandex.ru. Потом дал задание в кронтаб и все :)

Оффлайн deleter24

  • Любитель
  • *
  • Сообщений: 51
    • Просмотр профиля
Re: Fetchmail
« Ответ #7 : 13 Ноябрь 2013, 14:04:13 »
Мужики, нашел способ вывода уведомления прямо через коньки!!!
Объясню на примере яндексопочты.
Короче, в .conkyrc ПЕРЕД словом TEXT пишем вот это:
imap imap.yandex.ru ваш_логин ваш_пароль -i 5 -p 143 -r 10Причем логин должен быть без @yandex.ru, @gmail.com и т.д.
Таким образом, коньки будут коннектиться к серваку каждые 5 минут (можете поставить сколько угодно) через порт 143 (порт должен быть без SSL, иначе не заведется).
Далее, ПОД словом TEXT, а лучше где-нибудь в конце конфига пишем:
${if_match ${imap_unseen} == 1}${execi 300 notify-send "Яндекс.Почта" "Опаньки, тебе письмо пришло :)" -i /usr/share/icons/ubuntu-style/apps/kmaillight.png -t 10000}${endif}
${if_match ${imap_unseen} == 2}${execi 300 notify-send "Яндекс.Почта" "Чувак, у тебя 2 новых письма :)" -i /usr/share/icons/ubuntu-style/apps/kmaillight.png -t 10000}${endif}
${if_match ${imap_unseen} == 3}${execi 300 notify-send "Яндекс.Почта" "Чувак, у тебя 3 новых письма :)" -i /usr/share/icons/ubuntu-style/apps/kmaillight.png -t 10000}${endif}
${if_match ${imap_unseen} == 4}${execi 300 notify-send "Яндекс.Почта" "Чувак, у тебя 4 новых письма :)" -i /usr/share/icons/ubuntu-style/apps/kmaillight.png -t 10000}${endif}
${if_match ${imap_unseen} >= 5}${execi 300 notify-send "Яндекс.Почта" "Эй, парень, кто-то решил тебя спамом закидать :)" -i /usr/share/icons/ubuntu-style/apps/kmaillight.png -t 10000}${endif}
Естественно, текст уведомления, значок и время показа уведомления можно использовать какие угодно.
P.S. Рекомендую, чтобы параметр imap -i и execi совпадали во времени (например, у меня это 5 минут).
Ctrl+S -> Аминь.

Оффлайн 165

  • Участник
  • *
  • Сообщений: 134
    • Просмотр профиля
Re: Fetchmail
« Ответ #8 : 13 Март 2016, 20:52:09 »
Скрипт не видит письма во вложенных папках, и выдает ошибку если в папке нет прочтенных писем.

Если в папке есть прочтенные письма, отрабатывает нормально.

Ошибка та же что и выше у deleter24 -
: строка 7: let: div = 1 - для: ошибка синтаксиса: ожидается операнд (ошибочная метка "для")Такая же ошибка для двух новых писем, без единого прочтенного, в моем примере вся движуха с двумя письмами
: строка 7: let: div = 2 - для: ошибка синтаксиса: ожидается операнд (ошибочная метка "для")
Тут явно ошибка в работе когда нет прочтенных писем, он получает не те данные, не 0 как ожидалось, видимо, автором.

И вот еще ошибка, это если нет писем в папке вообще. Все при тех же настройках.
: строка 7: let: div = fetchmail: - логин@сервер.ру: синтаксическая ошибка в выражение (ошибочная метка ": - логин@сервер.ру")


Настройка .fetchmailrc
(Нажмите, чтобы показать/скрыть)

Код скрипта точно такой же как в примере.
(Нажмите, чтобы показать/скрыть)

П.Н.
Сервер Yandex. Почта под своим доменом.
« Последнее редактирование: 13 Март 2016, 21:18:10 от 165 »
Шахматы - самая волнующая игра.
Быть дебилом модно, а быть модным еще моднее.

 

Страница сгенерирована за 0.064 секунд. Запросов: 27.