Различия
Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
wiki:fetchmail [2017/01/30 18:53] [Использование fetchmail для получения почтовых вложений] |
wiki:fetchmail [2017/01/31 00:09] (текущий) [Использование fetchmail для получения почтовых вложений] |
||
|---|---|---|---|
| Строка 93: | Строка 93: | ||
| Настройка описывается на примере gmail (сразу рекомендую в дебрях Гугла [[https://www.google.com/settings/security/lesssecureapps | разрешить непроверенным приложениям получать доступ к вашему почтовому ящику]], иначе не оберетесь проблем). Почтовый ящик я для указанной выше цели использую отдельный, все подряд на него не сыплется, поэтому фильтрацию вложений в этом гайде я не описываю. | Настройка описывается на примере gmail (сразу рекомендую в дебрях Гугла [[https://www.google.com/settings/security/lesssecureapps | разрешить непроверенным приложениям получать доступ к вашему почтовому ящику]], иначе не оберетесь проблем). Почтовый ящик я для указанной выше цели использую отдельный, все подряд на него не сыплется, поэтому фильтрацию вложений в этом гайде я не описываю. | ||
| - | Получим сертификат Gmail (операции с сертификатом рекомендуется производить в отдельном каталоге с ограниченными правами доступа для посторонних, я в примере сохраняю его в домашней папке пользователя под названием **gmail.com.pem**): | + | Приводим конфигурационный файл ''~/.fetchmailrc'' к следующему виду: |
| - | <code bash>cd ~ && echo "quit" | openssl s_client -connect pop.gmail.com:995 -showcerts 2>&1 | awk '/^[\-]+BEGIN CERTIFICATE[\-]+$/,/^[\-]+END CERTIFICATE[\-]+$/ {if (/^[\-]+BEGIN CERTIFICATE[\-]+$/) { count=count+1; flag=1 } if (count==1 && flag==1) { print $0 } if (/^[\-]+END CERTIFICATE[\-]+$/) { flag=0 }}' > gmail.com.pem</code> | + | |
| - | + | ||
| - | Хешируем: | + | |
| - | <code bash>c_rehash $HOME</code> | + | |
| - | + | ||
| - | Получаем отпечаток ключа сертификата: | + | |
| - | <code bash>openssl x509 -in /home/user/gmail.com.pem -noout -md5 -fingerprint</code> | + | |
| - | В выхлопе будет что-то вроде ''MD5 Fingerprint=44:A8:E9:2C:FB:A9:7E:6D:F9:DB:F3:62:B2:9E:F1:A9''. | + | |
| - | + | ||
| - | Приводим конфигурационный файл ''~/.fetchmailrc'' к следующему виду (не забываем про права 600): | + | |
| <code bash> | <code bash> | ||
| - | set daemon 60#это включение режима работы в качестве демона и установка периодичности проверки почты | + | set daemon 60 #интервал в секундах проверки почты демоном |
| poll imap.gmail.com | poll imap.gmail.com | ||
| - | port 995 | + | with nodns, |
| - | proto POP3 | + | with protocol IMAP |
| - | user 'username@gmail.com' | + | user "user@gmail.com" there is "user" here,#строка "there is "user" here" позволяет соотнести логин почты с вашим пользователем Ubuntu по имени user; эта строка необязательна |
| - | pass 'password' | + | with password PaSSWorD, |
| - | ssl | + | keep,#письма остаются на сервере после прочтения |
| - | sslcertpath /home/user | + | with ssl, sslcertck;#при таких настройках сертификат не нужно перекачивать и хешировать вручную |
| - | sslfingerprint "44:A8:E9:2C:FB:A9:7E:6D:F9:DB:F3:62:B2:9E:F1:A9"#берем значение из выхлопа выше в данной статье | + | |
| mda 'procmail -d %T' | mda 'procmail -d %T' | ||
| set syslog set logfile fetchmail/logs/fetchmail.log | set syslog set logfile fetchmail/logs/fetchmail.log | ||
| + | </code> | ||
| + | |||
| + | Не забываем про права 600 (без них fetchmail не будет работать с конфигом - небезопасно же, пароль открыт всем - и выругается): | ||
| + | <code bash> | ||
| + | chmod 600 ~/.fetchmailrc | ||
| </code> | </code> | ||
| Строка 123: | Строка 118: | ||
| <code bash>mkdir -p ~/fetchmail/logs/ ~/fetchmail/backup/ ~/fetchmail/attachments/</code> | <code bash>mkdir -p ~/fetchmail/logs/ ~/fetchmail/backup/ ~/fetchmail/attachments/</code> | ||
| - | По пути ''~/fetchmail/logs/fetchmail.log'' нам будет доступен лог работы fetchmail, что мне, к примеру, упростило поиск ошибок в настройках (гайды из интернета как всегда не работают, возможно, у вас не заработает именно этот гайд8-)). | + | По пути ''~/fetchmail/logs/fetchmail.log'' нам будет доступен лог работы fetchmail, что мне, к примеру, упростило поиск ошибок в настройках (гайды из интернета как всегда не работают, возможно, у вас не заработает именно этот гайд8-)). Лог нужно создать вручную: |
| + | <code bash> | ||
| + | > ~/fetchmail/logs/fetchmail.log | ||
| + | </code> | ||
| - | Создаем конфигурационный файл ''~/.procmailrc'' со следующим содержимым: | + | Создаем конфигурационный файл ''~/.procmailrc'' со следующим содержимым (учтите, что права на вашу директорию $HOME для работы procmail должны быть не более, чем 744, как и права на сам .procmailrc - без этого procmail будет заявлять, что конфиг подозрителен): |
| <code bash> | <code bash> | ||
| :0 | :0 | ||
| Строка 134: | Строка 132: | ||
| $HOME/fetchmail/backup | $HOME/fetchmail/backup | ||
| - | # а здесь будут распакованы все файлы из письма и сложены в каталог | + | #здесь будут распакованы все файлы из письма и сложены в нужный нам каталог |
| - | # для этого сделаем форвард в uudeview, который распакует вложения в $HOME/fetchmail/attachments | + | #для этого сделаем форвард в uudeview, который распакует вложения в $HOME/fetchmail/attachments |
| - | # опция -a создает нумерованные копии файлов, если файлы с таким именем уже обнаружены | + | #опция -a создает нумерованные копии файлов, если файлы с таким именем уже обнаружены |
| - | :0f #в оригинальном конфиге эта строка выглядела как ":0fw" и не работала | + | :0f |
| | uudeview -i +a +o -p $HOME/fetchmail/attachments - | | uudeview -i +a +o -p $HOME/fetchmail/attachments - | ||
| } | } | ||
| </code> | </code> | ||
| - | Теперь остается добавить fetchmail в cron для автозагрузки. В файле ''~/fetchmail/fetchmail.cron'' сохраняем следующее содержимое: | + | Теперь остается добавить fetchmail в [[wiki:cron|cron]] для автозагрузки. В файле ''~/fetchmail/fetchmail.cron'' сохраняем следующее содержимое: |
| <code bash> | <code bash> | ||
| PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin | PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin | ||
| Строка 155: | Строка 153: | ||
| fetchmail | fetchmail | ||
| </code> | </code> | ||
| - | Если что-то не сработает - в первую очередь смотрите лог fetchmail, затем гуглите. Если чего-то в вашей системе не хватает, возможно вам потребуется дополнительно установить пакеты **mailutils**, **exim4** и **sendmail**. | + | Если что-то не сработает - в первую очередь смотрите лог fetchmail, затем гуглите. |
| ======Ссылки====== | ======Ссылки====== | ||
| [[http://forum.ubuntu.ru/index.php?topic=191678.0|Тема]] с обсуждением данной статьи | [[http://forum.ubuntu.ru/index.php?topic=191678.0|Тема]] с обсуждением данной статьи | ||