The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

fetchmail (1)
  • >> fetchmail (1) ( Русские man: Команды и прикладные программы пользовательского уровня )
  • Ключ fetchmail обнаружен в базе ключевых слов.
  •  

    НАЗВАНИЕ

    fetchmail - прием почты с серверов POP, IMAP, ETRN, или ODMR  

    СИНТАКСИС

    fetchmail [опция...] [сервер...]
    fetchmailconf  

    ОПИСАНИЕ

    fetchmail - это утилита приема и пересылки почты; она забирает почту с удаленных почтовых серверов и передает ее локальной системе доставки почты на машине клиента. После этого вы можете читать почту обычными почтовыми агентами, например, mutt, elm или Mail. Утилита fetchmail может быть запущена в режиме демона для регулярной проверки и приема почты с одного или нескольких серверов.

    fetchmail может забирать почту с серверов, поддерживающих любой протокол приема почты: POP2, POP3, IMAP2bis, IMAP4, IMAPrev1. Он также поддерживает расширения ESMTP ETRN и ODMR.

    Хотя fetchmail проектировался для использования на периодических сеансах TCP/IP (например, соединения по протоколам SLIP или PPP), он может использоваться для доставки почты в защищенных системах, где запрещены соединения по SMTP с sendmail.

    Каждое сообщение, принятое fetchmail, затем обычно пересылается по SMTP на порт 25 локальной машины, на которой он запущен (localhost), как будто это сообщение было принято по обычному каналу TCP/IP. Затем почта доставляется локально системным транспортным агентом (MDA - Mail Delivery Agent, обычно это sendmail, но можно использовать smail, mmdf, exim, qmail). Все механизмы управления доставкой (например, файлы .forward), обрабатываются системным MDA, и после этого срабатывают агенты локальной доставки почты.

    Если порт 25 не доступен, а fetchmail знает о надежном локальном MDA, то этот MDA и будет использован для локальной доставки. Во время сборки fetchmail обычно ищет исполняемые файлы procmail и sendmail.

    Если у вас есть программа fetchmailconf, она может помочь в настройке и редактировании конфигурационного файла fetchmailrc. Она работает под X и требует установленных Python и Tk. Если вы настраиваете fetchmail для одного пользователя, выберите режим Novice. Режим Expert предоставляет полный контроль в настройке fetchmail, включая управление доменными (maildrop) ящиками. В любом случае, кнопка Autoprobe определит наилучший протокол, который поддерживает ваш почтовый сервер и предупредит о потенциальных проблемах.  

    ОСНОВНЫЕ ОПЕРАЦИИ

    Поведение fetchmail управляется опциями командной строки и конфигурационным файлом, ~/.fetchmailrc, синтаксис которого будет рассмотрен ниже (именно этот файл редактирует программа fetchmailconf). Опции командной строки имеют более высокий приоритет над опциями в ~/.fetchmailrc.

    При запуске fetchmail запрашивается каждый сервер, указанный в командной строке. Если сервера в командной строке не указаны, их имена берутся из файла ~/.fetchmailrc.

    Для облегчения использования fetchmail в скриптах и потоках, он возвращает код завершения.

    Большинство опций имеют соответствующее ключевое слово, используемое в файле fetchmailrc.

    Здесь не охвачены некоторые специфические опции; они перенесены в разделы "Аутентификация" и "Режим демона".  

    Основные параметры

    -V, --version
    Вывод информации о вашей текущей копии fetchmail. Прием почты не производится. Вместо этого для каждого из указанных серверов выводятся все опции. Непечатные символы в паролях и прочих строках выводятся в С-стиле как ESC-последовательности,с обратной чертой. Эта опция полезна для проверки правильности ваших настроек.
    -c, --check
    Возвращает код состояния, оповещающего о наличии почты. Прием почты не производится (см. Коды возврата). Эта опция выключает режим демона. Она не очень хорошо работает с запросами нескольких серверов и не работает с ETRN или ODMR. Она возвращает ложный положительный ответ, если осталась прочтенная, но не удаленная почта в почтовом ящике на сервере, а ваш почтовый протокол не различает новые и прочитанные сообщения. Это значит, что эта опция будет работать с протоколом IMAP, не будет с POP2 и может сбоить на протоколе POP3.
    -s, --silent
    Тихий режим. Подавляет весь вывод сообщений о процессе/состоянии, которые обычно выводятся на stderr во время приема почты (это не влияет на сообщения об ошибках). Опция --verbose переопределяет этот режим.
    -v, --verbose
    Информативный режим. Все управляющие сообщения, проходящие между fetchmail и почтовым сервером, дублируются на stdout. Двойная опция (-v -v) увеличивает объем выдаваемой диагностики.
     

    Опции приема почты

    -a, --all
    (Ключ: fetchall) Прием как старых (прочитанных), так и новых сообщений с сервера. По умолчанию принимаются только непрочитанные сообщения. В POP3 эта опция, помимо прочего, выдает команду RETR вместо TOP. При использовании POP2 прием осуществляется так, как будто опция --all всегда включена. Эта опция не работает с ETRN или ODMR.
    -k, --keep
    (Ключ: keep) Сохраняет принятые сообщения на удаленном почтовом сервере. Обычно после приема сообщения удаляются с сервер. Опция keep сохраняет принятые сообщения в вашем почтовом ящике на почтовом сервере. Эта опция не работает с ETRN или ODMR.
    -K, --nokeep
    (Ключ: nokeep) Удаляет принятые сообщения с удаленного почтового сервера. Может быть полезна, если вы указали по умолчанию опцию keep в файле .fetchmailrc. Эта опция принудительно включается при использовании ETRN или ODMR.
    -F, --flush
    Только для POP3/IMAP. Удаляет старые (ранее прочитанные) сообщения с почтового сервера перед началом приема новых сообщений. Эта опция не работает с ETRN или ODMR. Внимание: Если ваш MTA завис и fetchmail аварийно завершил работу, при следующем запуске fetchmail удалит почту, которая так и не была вам доставлена. Лучше оставить настройки по умолчанию: если вы не указали опцию -k, то fetchmail автоматически удалит сообщения после их успешного приема.
     

    Опции протоколов и запроса

    -p, --protocol <proto>
    (Ключ: proto[col]) Указывает протокол, который будет использоваться для связи с удаленным почтовым сервером. Если протокол не указан, принимается значение по умолчанию - AUTO. proto может принимать одно из следующих значений:
    AUTO   Пробует IMAP, POP3, и POP2 (пропуская те, поддержка которых которых не была вкомпилирована).
    POP2   Post Office Protocol 2
    POP3   Post Office Protocol 3
    APOP   POP3 с аутентификацией MD5 в старом стиле.
    RPOP   POP3 с аутентификацией RPOP.
    KPOP   POP3 с аутентификацией Kerberos V4 через порт 1109.
    SDPS   POP3 с расширениями Demon Internet SDPS.
    IMAP   IMAP2bis, IMAP4, или IMAP4rev1 (fetchmail определяет сам).
    ETRN   Использовать опцию ESMTP ETRN.
    ODMR   Использовать профиль On-Demand Mail Relay ESMTP.

    Все эти протоколы работают по одному принципу - связываются с сервером и забирают почту, лежащую в почтовом ящике на сервере (кроме ETRN и ODMR). В режиме ETRN вы запрашиваете соответствующий ESMTP-сервер (например, BSD sendmail версий 8.8.0 и выше) для открытия SMTP-соединения с клиентской машиной и направления почты, лежащей в почтовой очереди сервера, на вашу машину. Режим ODMR работает аналогично ETRN, но не требует наличия на клиентской машине статического DNS.

    -U, --uidl
    (Ключ: uidl) Заставляет использовать UIDL (только в POP3), т.е. следить за "новизной" сообщений (UIDL означает "unique ID listing" и описан в RFC1725). Используется совместно с "keep" при использовании почтового ящика несколькими пользователями.
    -P, --port <portnumber>
    (Ключ: port) Опция port определяет порт TCP/IP-соединения. Эта опция редко используется, т.к. все протоколы имеют свои стандартные номера портов.
    --principal <principal>
    (Ключ: principal) Опция principal позволяет указать ведущий сервис для взаимной аутентификации. Используется в POP3 или IMAP с аутентификацией Kerberos.
    -t, --timeout <seconds>
    (Ключ: timeout) Устанавливает предельное время "молчания" сервера в секундах. Если сервер не посылает приветственного сообщения или не отвечает на команды в течении указанного времени, fetchmail "зависает". Если не указывать тайм-аут, то fetchmail может зависнуть навсегда, пытаясь получить почту с зависшего сервера. Это может быть весьма нежелательно, если fetchmail работает в фоновом режиме. Значение тайм-аута по умолчанию можно узнать, запустив fetchmail -V. Если соединение получает слишком много тайм-аутов, fetchmail будет считать такое соединение сборным и прекратит прием почты, а пользователь получить об этом соответствующее письмо.
    --plugin <command>
    (Ключ: plugin) Опция plugin позволяет использовать внешнюю программу для установления TCP-соединения. Она полезна, например, при использовании SOCKS, SSL, ssh или в случае специальный настроек брандмауэра. Программа ищется в $PATH; в качестве параметров ей могут быть переданы аргументы "%h" и "%p". Fetchmail передает данные в программу через stdin, а получает из программы через stdout.
    --plugout <command>
    (Ключ: plugout) Аналог опции plugin, но используется для соединений SMTP.
    -r <name>, --folder <name>
    (Ключ: folder[s]) Указывает специфический почтовый ящик на почтовом сервере (или список ящиков через запятую), из которого надо взять почту. Синтаксис имени ящика зависит от сервера. Эта опция не доступна в POP3, ETRN или ODMR.
    --tracepolls
    (Ключ: tracepolls) Заставляет выводить информацию в виде 'polling %s account %s' где %s заменяются именем удаленного пользователя и и меткой сервера. Это может использоваться при фильтрации почты.
    --ssl
    (Ключ: ssl) Указывает, что соединение с почтовым сервером должно быть зашифровано через SSL. С сервером образуется защищенное соединение. SSL должен быть запущен на сервере. Если не указан порт, то соединение устанавливается через порт SSL. Обычно этот номер порта отличается от номеров портов почтовых протоколов. Например, для IMAP используется 143, а для SSL - 993.
    --sslcert <name>
    (Ключ: sslcert) Определяет имя файла сертификата SSL клиента. Некоторые серверы, использующие SSL, при аутентификации требуют у клиента наличия ключей и сертификатов. В большинстве случаев это дополнительный параметр. Он определяет местонахождение файла сертификата открытого ключа, который следует представить серверу во время установления SSL-соединения. Некоторые серверы могут затребовать такой сертификат.
    --sslkey <name>
    (Ключ: sslkey) Определяет имя файла личного ключа SSL клиента. Некоторые серверы, использующие SSL, при аутентификации требуют у клиента наличия ключей и сертификатов. Этот параметр определяет файл ключа, используемого для подписи транзакций с сервером во время установления соединения SSL. Он не нужен, если сервер не требует его, но некоторые серверы могут потребовать его наличия. Если ключ защищен паролем, то он будет запрошен при установлении соединения с сервером. Это может вызвать проблемы в режиме демона.
    --sslproto <name>
    (Ключ: sslproto) Указывает на использование протокола ssl. Возможные значения: ssl2, ssl3 и tls1. Попробуйте эту опцию, если стандартная процедура регистрации не проходит на вашем сервере.
    --sslcertck
    (Ключ: sslcertck) Указывает fetchmail строго сверить сертификат сервера со своими локальными доверенными сертификатами (см. опцию sslcertpath). Если сертификат сервера не подписан одним из доверенных (прямо или косвенно), соединение SSL не будет установлено. Эта проверка предупреждает атаки типа "промежуточного лица" в соединениях SSL. Обратите внимание, что CRL, видимо, в настоящее время не поддерживаются в OpenSSL при проверке сертификатов! При использовании этой опции ваши системные часы должны быть очень аккуратно настроены!
    --sslcertpath <directory>
    (Ключ: sslcertpath) Указывает каталог, в котором fetchmail ищет локальные сертификаты. По умолчанию - это каталог, принятый по умолчанию для OpenSSL. Помните, что всякий раз, когда вы добавляете или меняете сертификаты, вы должны запускать утилиту c_rehash для создания хеша.
    --sslfingerprint
    (Ключ: sslfingerprint) Определяет отпечаток ключа сервера (хеш MD5 ключа) в 16-ричной нотации, причем группы по 2 цифры разделяются двоеточиями. Буквы в 16-ричных числах должны быть в верхнем регистре. Этот формат принят OpenSSL, fetchmail использует его при установлении соединения SSL. Если ключи не совпадают, соединение не устанавливается.
     

    Опции доставки

    -S <hosts>, --smtphost <hosts>
    (Ключ: smtp[host]) Задает список узлов, на которые следует пересылать почту (один или несколько имен узлов, разделенные запятыми). Узлы будут просматриваться в порядке их следования в списке. Первый откликнувшийся и будет использован для пересылки. Обычно в конец списка невидимо добавляется "localhost". Однако, при использовании Kerberos, в конец списка добавляется FQDN машины, на которой запущен fetchmail. После каждого имени через косую черту можно указать номер порта. По умолчанию 25 (или "smtp" в IPv6). При указании абсолютного маршрута (т.е. начинающегося с /), он интерпретируется как имя UNIX-сокета, принимающего соединения LMTP (например, Cyrus IMAP daemon). Например:

       --smtphost server1,server2/2525,server3,/var/imap/socket/lmtp
    

    Эта опция может использоваться с ODMR, тогда fetchmail будет выполнять роль шлюза между серверами ODMR и SMTP.

    --fetchdomains <hosts>
    (Ключ: fetchdomains) В режиме ETRN или ODMR эта опция определяет список доменов, для которых будет приниматься почта, когда соединение сменит направление. По умолчанию - это полное доменное имя (FQDN) машины, на которой запущен fetchmail.
    -D <domain>, --smtpaddress <domain>
    (Ключ: smtpaddress) Определяет домен, который добавляется к адресу в строках RCPT TO, посылаемых на SMTP-сервер. Если не указано, то используется имя SMTP-сервера (указываемого опцией --smtphost или "localhost" по умолчанию).
    --smtpname <user@domain>
    (Ключ: smtpname) Указывает имя домена и пользователя, которые помещаются в строку RCPT TO, передаваемой на SMTP-сервер. По умолчанию подставляется имя локального пользователя.
    -Z <nnn>, --antispam <nnn[, nnn]...>
    (Ключ: antispam) Определяет список кодов ошибок SMTP, которые интерпретируются как блокировка спама от сервера. Значение -1 отключает эту опцию. В командной строке список значений разделяется запятыми.
    -m <command>, --mda <command>
    (Ключ: mda) С помощью этой опции вы можете передать почту непосредственно доставочному агенту (MDA) минуя порт 25. Для избежания потери почты используйте эту опцию только с sendmail или procmail, которые возвращают коды завершения в случае возникновения ошибок; ненулевой код возврата вынуждает fetchmail прекратить прием почты и оставить сообщение на сервере. Если fetchmail выполняется под бюджетом root, он устанавливает свой userid в имя того пользователя, которому доставляет почту. Возможные MDA - "/usr/sbin/sendmail -oem -f %F %T", "/usr/bin/deliver" и "/usr/bin/procmail -d %T" Адреса локальной доставки подставляются вместо %T, адрес отправителя из поля заголовка From - вместо %F. Не используйте вызов MDA в виде "sendmail -oem -t", который обрабатывает содержимое To/Cc/Bcc, это может вызвать зацикливание почты и гнев многих администраторов почты.
    --lmtp
    (Ключ: lmtp) Указывает на доставку через LMTP (Local Mail Transfer Protocol). В этом случае необходимо указать номер порта (через косую черту) для каждого узла в списке опции smtphost. Номер порта по умолчанию 25 указывать нельзя.
    --bsmtp <filename>
    (Ключ: bsmtp) Добавляет принятую почту в файл BSMTP. Он просто содержит команды SMTP, которые fetchmail обычно посылает демону SMTP в процессе пересылки почты. Аргумент '-' вызывает вывод почты на стандартный вывод. Учтите, что реконструкция команд MAIL FROM и RCPT TO не может быть гарантированно правильно. Особенно это касается доменных ящиков. Эти предупреждения описаны в разделе "Использование доменных ящиков".
     

    Опции управления ограничениями

    -l <maxbytes>, --limit <maxbytes>
    (Ключ: limit) Устанавливает максимальный размер письма в байтах. Сообщения размером больше указанного не будут приниматься, но будут оставлены на сервере (если fetchmail работает не в фоновом режиме, то такие сообщения будут отмечены как "oversized"). Если протокол приема допускает (например, IMAP и POP3 без опции fetchall), сообщения не будут помечены как прочтенные. Установка значения в 0 снимает ограничения на размер, установленные в файле конфигурации. Эта опция полезна для ограничения приема больших сообщений в дневные часы с высоким телефонным тарифом. При работе в режиме демона пользователю посылается соответствующее письмо. Эта опция не работает с ETRN и ODMR.
    -w <interval>, --warnings <interval>
    (Ключ: warnings) Значение параметра - интервал в секундах. При вызове fetchmail с опцией --limit в режиме демона, эта опция определяет интервал, с которым пользователю посылаются письма с уведомлением о наличии большого письма.
    -b <count>, --batchlimit <count>
    (Ключ: batchlimit) Определяет максимальное число сообщений, которое будет отправлено по SMTP до того, как соединение будет закрыто и открыто вновь (0 означает отсутствие ограничения). Явное указание --batchlimit в командной строке переопределяет ограничения в конфигурационном файле. Тогда как sendmail обычно начинает доставку сообщений сразу после получения конца сообщения, другие MTA, типа qmail и smail, могут ждать закрытия сокета. Это вызывает задержки при обработке очень больших пакетов. Указание этой опции позволяет устранить такие задержки. Эта опция не работает с ETRN и ODMR.
    -B <number>, --fetchlimit <number>
    (Ключ: fetchlimit) Ограничивает число сообщений, принимаемых с сервера за один сеанс. По умолчанию такого ограничения нет. Эта опция не работает с ETRN и ODMR.
    -e <count>, --expunge <count>
    (Ключ: expunge) Вызывает окончательное удаление (вычеркивание) после приема указанного числа сообщений. При использовании POP2 или POP3 невозможно сделать окончательное удаление, пока не будет дана команда QUIT в конце сессии. При использовании этой опции fetchmail разделит длинный сеанс приема почты на несколько сессий, посылая QUIT в конце каждой из них. Это очень удобно в случае частых разрывов связи при плохом качестве телефонной линии. При использовании IMAP, fetchmail посылает команду EXPUNGE после каждого удаления. Это очень полезно, если ваше соединение нестабильно - исключается появление дубликатов сообщений. Однако, на больших почтовых ящиках это вызывает частую переиндексацию и перегружает сервер, поэтому применяйте эту опцию не слишком часто. Если вы указываете значение этой опции как целое N, то fetchmail будет вызывать expunge после каждого N-го удаления. Значение 0 отменяет expunge. Эта опция не работает с ETRN и ODMR.
     

    Опции аутентификации

    -u <name>, --username <name>
    (Ключ: user[name]) Указывает имя пользователя, используемого для авторизации на удаленном почтовом сервере. По умолчанию - это имя пользователя локальной машины, на которой запущен fetchmail.
    -I <specification>, --interface <specification>
    (Ключ: interface) Проверяет, чтобы перед приемом почты был активен указанный интерфейс и имел указанный локальный или удаленный адрес (или диапазон). Часто fetchmail используется по телефонным каналам по протоколам SLIP или PPP. Это относительно безопасный канал. Но если к почтовому серверу существуют другие маршруты (например, если связь устанавливается через альтернативного провайдера), ваши имя и пароль могут быть перехвачены (особенно в режиме демона с периодическим приемом почты). Опция --interface помогает это предотвратить. Если указанное соединение не активно, или имеет некорректный адрес, прием почты не осуществляется. Формат опции следующий:

       interface/iii.iii.iii.iii/mmm.mmm.mmm.mmm
    

    Поле перед первой косой чертой (interface) - имя интерфейса (например, ppp0). Второе поле (iii.iii.iii.iii)- это допустимый IP-адрес. Третье поле (mmm.mmm.mmm.mmm) - это маска, задающая диапазон адресов. Если она не указана, подразумевается маска 255.255.255.255 (т.е. точное совпадение). Эта опция поддерживается только в Linux и FreeBSD. Специфичную информацию для FreeBSD см. в опции monitor.

    -M <interface>, --monitor <interface>
    (Ключ: monitor) Режим демона может занять линию, которая должна отключаться по истечении периода не активности (например, PPP), на бесконечное время. Эта опция заставляет следить за активностью интерфейса TCP/IP. Перед каждым приемом почты делается проверка линии - если интерфейс поднят и не наблюдается другой активности, то прием пропускается. Однако, если fetchmail "просыпается" по сигналу, то проверка интерфейса не производится, и прием происходит в любом случае. Эта опция поддерживается только в Linux и FreeBSD. Чтобы опции monitor и interface работали в FreeBSD под непривилегированным пользователем, исполняемый файл fetchmail должен быть установлен SGID kmem. Возможно, это брешь в безопасности, но fetchmail работает под эффективным GID, установленным в эту kmem group только во время собирания данных с интерфейса.
    --auth <type>
    (Kлюч: auth[enticate]) Определяет тип аутентификации. Возможные значения: any, password, kerberos_v5 и kerberos (точнее, kerberos_v4), gssapi, cram-md5, otp, ntlm, и ssh. Если указано значение any (по умолчанию), fetchmail пробует сначала методы, не требующие пароля (GSSAPI, KERBEROS_IV); затем смотрит методы, скрывающие ваш пароль (CRAM-MD5, X-OTP, NTLM), и если сервер не поддерживает вышеперечисленное, используются методы, передающие пароль в открытом виде. Другие значения могу использоваться для разных методов аутентификации (ssh подавляет аутентификацию). Любое значение, отличное от password, cram-md5, ntlm или otp не требует пароля. Укажите ssh, если вы используете защищенное соединение; gssapi или kerberos_v4, если используются протоколы, производные от GSSAPI или K4. Выбор протокола KPOP автоматически включает аутентификацию Kerberos. Эта опция не работает с ETRN.
     

    Прочие опции

    -f <pathname>, --fetchmailrc <pathname>
    Определяет имя конфигурационного файла, отличного от ~/.fetchmailrc. Вместо имени можно указать "-" (одиночное тире), что означает чтение настроек со стандартного ввода. Конфигурационный файл должен иметь права доступа не более 600 (u=rw,g=,o=), иначе fetchmail не запустится.
    -i <pathname>, --idfile <pathname>
    (Ключ: idfile) Определяет альтернативное имя файла .fetchids для хранения UID.
    -n, --norewrite
    (Ключ: no rewrite) Обычно fetchmail меняет заголовки (To, From, Cc, Bcc, и Reply-To) в принятой почте так, преобразуя их в полные адреса (@ и имя почтового сервера). Это облегчает делать ответы на письма (иначе все адресаты подразумевались бы как локальные пользователи вашей клиентской машины!). Эта опция запрещает переопределение адресов. (Эта опция включена по настоянию многих параноиков, осмелившихся редактировать правила подстановки sendmail; на самом деле это не очень хорошая идея отключать переопределение заголовков).
    -E <line>, --envelope <line>
    (Ключ: envelope) Эта опция изменяет заголовок, который fetchmail подразумевает как несущий копию адреса конверта, "X-Envelope-To". Но поскольку этот заголовок не стандартный, на практике всякое бывает. Подробнее смотрите ниже обсуждение доменных почтовых ящиков (multidrop). Как особый случай, 'envelope "Received"' разрешает обработку строк Received в стиле sendmail. Это установлено по умолчанию, и не следует менять, если вы глобально не отключили обработку строк "Received" опцией "no envelope" в конфигурационном файле.
    -Q <prefix>, --qvirtual <prefix>
    (Ключ: qvirtual) Значением этой опции является строка-приставка, которая удаляется из имени пользователя, если оно найдено в заголовке, определенном в опции envelope перед преобразованием имен в случае доменного ящика или проверки локального домена. Эта опция полезна, если вы забираете почту для целого домена, а ваш провайдер использует qmail. Одной из особенностей qmail является заголовок сообщения

       'Delivered-To:'
    

    Когда qmail доставляет почту в локальный почтовый ящик, он помещает в эту строку имя пользователя и имя узла. Основная причина этого - предотвращение зацикливания почты. При настройке qmail для обработки почты для отключенной машины, почтовый сервер провайдера обычно помещает имя этой машины в свой файл 'Virtualhosts' с тем, чтобы он добавлялся в начало всех адресов для этого сайта. Это вызывает отправку почту к пользователю 'username@userhost.userdom.dom.com', имеющей строку 'Deivered-To:' в виде:

       Delivered-To: mbox-userstr-username@userhost.userdom.dom.com
    

    Провайдер может создать любой префикс 'mbox-userstr-', но обычно используется имя пользовательского узла. С помощью опции 'envelope Delivered-To:' fetchmail может надежно определить получателя, но префикс 'mbox-userstr-' необходимо отрезать. Для этого и предназначена эта опция.

    --configdump
    Проверяет файл ~/.fetchmailrc, интерпретирует опции командной строки и создает отчет о конфигурации на стандартный вывод. Отчет представляет собой набор правил присвоений на языке Python. Эта опция предназначена для использования в утилите интерактивной настройки fetchmailconf, написанной на Python.
     

    АУТЕНТИФИКАЦИЯ ПОЛЬЗОВАТЕЛЕЙ И ШИФРОВАНИЕ

    Во всех режимах, кроме ETRN, необходима аутентификация клиента. Обычная аутентификация пользователя в fetchmail сходна с механизмом, используемом в ftp. Проверка правильности идентификатора пользователя и пароля зависит от применяемой на почтовом сервере системы безопасности.

    Если почтовый сервер является Unix-машиной, на которой вы имеете свою учетную запись, fetchmail будет использовать ваши обычные имя и пароль. Если вы используете одно и то же имя и на сервере, и на клиенте, вам можно не указывать идентификатор пользователя в опции -u -- по умолчанию используется ваше имя на клиентской машине. Если же на сервере используется другое, укажите его в опции -u. Например, если ваше учетное имя 'jsmith' на машине с именем 'mailgrunt', вы можете запустить fetchmail следующим образом:

       fetchmail -u jsmith mailgrunt
    

    По умолчанию fetchmail интерактивно запрашивает ваш пароль перед установлением соединения. Это самый безопасный способ использования fetchmail; он обеспечивает, что ваш пароль не будет скомпрометирован. Однако, вы можете указать свой пароль в файле ~/.fetchmailrc. Это полезно при запуске fetchmail в режиме демона или в скриптах.

    Если вы не указали пароль, и fetchmail не обнаружил его в вашем файле ~/.fetchmailrc, то будет предпринята попытка выудить пароль из файла ~/.netrc в вашем домашнем каталоге, и только потом будет сделан интерактивный запрос. Первым делом Fetchmail смотрит на соответствие имени в опции poll; если не найдено, проверяется имя в via. Синтаксис файла ~/.netrc описан в документации по ftp.

    На почтовых серверах, не содержащих обычных бюджетов пользователей, ваш идентификатор и пароль обычно присваиваются администратором сервера при открытии почтового ящика. Если вы не знаете свой идентификатор и пароль для доступа к почтовому ящику, обратитесь к своему администратору.

    Ранние версии POP3 (RFC1081, RFC1225) использовали грубую форму аутентификации с использованием на стороне сервера файла rhosts. В варианте RPOP на сервер через специальный порт подается эквивалент пароля, а серверу вместо команды PASS посылается команда RPOP, чтобы тот предпринял соответствующую проверку. RPOP поддерживается в fetchmail (укажите опцию 'protocol RPOP'), но настоятельно не рекомендуется использовать, поскольку с помощью спуфинга такой пароль легко перехватить.

    RFC1460 предлагает аутентификацию APOP. В этом варианте POP3 вы регистрируете пароль APOP на сервере (для этого есть специальная программа popauth), и помещаете свой пароль в файл ~/.fetchmailrc. При каждой регистрации fetchmail на сервере, он посылает зашифрованный хеш вашего пароля и времени сервера, который затем проверяется в базе данных.

    Если fetchmail собран с поддержкой Kerberos, и вы указываете аутентификацию Kerberos (опцией --auth или опцией authenticate kerberos_v4 в файле .fetchmailrc), fetchmail при каждом приеме почты пытается получить у почтового сервера билет Kerberos. Если в параметрах poll или via указано значение 'hesiod', то fetchmail попытается использовать Hesiod для поиска сервера.

    При использовании POP3 или IMAP с аутентификацией GSSAPI, fetchmail проверит, поддерживает ли почтовый сервер функции GSSAPI (описанные в RFC1731 и RFC1734), и в случае положительного результат будет их использовать. В настоящее время это проверено только для Kerberos V, поэтому ожидается, что у вас уже есть нужный билет Kerberos. Вы можете передать имя пользователя, отличающееся от стандартного, через опцию --user или через ключевое слово user в .fetchmailrc.

    Если демон IMAP во время аутентификации возвращает ответ PREAUTH, fetchmail распознает это и пропускает стандартный этап аутентификации. Это может быть полезно при запуске imapd вместе с ssh. В этом случае вы можете объявить значение аутентификации 'ssh', это предупредит запрос у вас пароля при запуске fetchmail.

    Если вы используете POP3, а сервер посылает одноразовый пароль в соответствии с RFC1938, fetchmail будет использовать ваш пароль как фразу для генерации ответа. Это предотвращает пересылку паролей в открытом виде.

    Поддерживается также аутентификация Compuserv RPA (сходная с APOP). Если вы включили в fetchmail ее поддержку, то вместо посылки не зашифрованного пароля производится аутентификация RPA, если в имени узла обнаруживается "@compuserve.com".

    Если вы используете IMAP, то поддерживается также Microsoft NTLM (применяется в Microsoft Exchange). Если вы включили в fetchmail ее поддержку, fetchmail пробует провести аутентификацию NTLM (вместо посылки открытого пароля) всякий раз, когда сервер на запрос его возможностей отвечает AUTH=NTLM. Опция user указывается в виде 'user@domain': левая часть до @ (user) - это имя пользователя, а правая часть (domain)- имя домена NTLM.

    При использовании IPSec, можно указать опцию -T (--netsec) для передачи защищенного запроса, используемого при инициализации исходящего соединения IP. Значение этой опции - строка, передаваемая параметром в функцию net_security_strtorequest() библиотеки inet6_apps.

    Доступ к функциям шифрования осуществляется указанием опции --ssl или ключевого слова "ssl" в файле .fetchmailrc. При включенном SSL все запросы посылаются после установления SSL-соединения. Некоторые сервисы, например, POP3 и IMAP, используют номера портов отличные, чем SSL. Номера защищенных портов выбираются автоматически.

    При установлении соединения с сервером SSL, сервер предъявляет клиенту для проверки сертификат. Сертификат проверяется на предмет соответствия имени сервера в сертификате настоящему имени сервера, а также проверяется срок действия сертификата. Если любое из этих правил не подтверждается, выводится предупреждение, но соединение продолжается. Сертификат сервера не обязательно должен быть подписан специальной Службой Сертификации, это может быть "самоподписанный" сертификат.

    Некоторые SSL-серверы могут затребовать сертификат клиента. В этом случае можно указать размещение сертификата и личного ключа. Сертификат клиента направляется на сервер для проверки. Если сертификат отсутствует или неверен, соединение может быть прекращено. Некоторые серверы также требуют, чтобы сертификаты были подписаны известной Службой Сертификации.

    И, наконец, последнее слово об использовании SSL: хотя описанный метод с использованием самопальных сертификатов и защищает от пассивных наблюдателей, он не спасает от активных атак. Конечно, этот гораздо лучше пересылки открытых паролей, но вы должны всегда учитывать атаку "промежуточного звена" (например, такими утилитами, как dsniff http://www.monkey.org/~dugsong/dsniff/). Если вы беспокоитесь о безопасности вашего почтового ящика, используйте туннелирование ssh (ниже есть примеры).  

    РЕЖИМ ДЕМОНА

    Опции --daemon <interval> или -d <interval> запускают fetchmail в режиме демона. В качестве interval укажите числовой аргумент - это интервал приема почты в секундах.

    В режиме демона fetchmail переводит себя в фоновый режим и работает бесконечно, запрашивая указанный узел, а затем засыпая на указанный период времени.

    Например, при запуске

       fetchmail -d 900
    

    fetchmail будет опрашивать все почтовые сервера, перечисленные в вашем файле ~/.fetchmailrc (кроме содержащих ключевое слово skip), каждые 15 минут.

    Можно также указать интервал выборки в файле ~/.fetchmailrc, задав опцию 'set daemon <interval>', где <interval> - это целое число секунд. В этом случае fetchmail всегда будет стартовать в режиме демона, если вы не переопределите это в командной строке опцией --daemon 0 или -d0.

    В режиме демона возможен только один процесс на каждого пользователя, для обеспечения этого fetchmail создает файлы блокировки.

    Обычно вызов fetchmail с опцией daemon в фоновом режиме посылает сигнал демону, вызывая немедленный запрос почтового сервера. Для этого служит сигнал SIGHUP, если fetchmail запущен от root, или SIGUSR1 в противном случае. При этом также очищаются все флаги "заклинивания", установленные ранее при неудачной аутентификации или многочисленных тайм-аутах.

    Опция --quit прекращает работу демона. Она используется только в командной строке.

    Эта опция может быть использована совместно с другими опциями; она останавливает работу работающего демона до того, как сработают остальные опции командной строки в комбинации с настройками конфигурационного файла.

    Опция -L <filename> или --logfile <filename> (ключ: set logfile) позволяет направить информационные сообщения в указанный лог-файл, имя которого указывается в качестве аргумента filename. Лог-файл открывается на добавление, поэтому предыдущие сообщения не удаляются. Эта опция используется в основном для отладки.

    Опция --syslog (ключ: set syslog) задает направление всех информационных сообщений и сообщений об ошибках в демон syslog. Сообщения записываются с идентификатором fetchmail, уровнем LOG_MAIL, и приоритетом LOG_ERR, LOG_ALERT или LOG_INFO. Эта опция предназначена для записи состояния и сообщений об ошибках во время приема почты с сервера. Сообщения об ошибках командной строки или во время проверки .fetchmailrc все равно выдаются на stderr или в указанный файл журнала.

    Опция --nosyslog отключает использование syslog, подразумевая, что это было включено в ~/.fetchmailrc или в командной строке через -L или --logfile <file>.

    Опция -N или --nodetach предотвращает перевод процесса в фоновый режим и открепление от управляющего терминала. Обычно используется при отладке. Учтите, что в этом случае опция logfile игнорируется.

    При приеме почты в режиме демона с сервера POP2 или IPAP2bis, временные ошибки (например, сбой DNS или отказ sendmail доставить почту) могут принудительно включить опцию fetchall при следующем сеансе приема почты. Это означает, что если сообщение принято (и помечено на сервере как прочтенное), но локально не доставлено, в следующем сеансе приема почты оно будет принято повторно (IMAP не удаляет сообщения с сервера, пока они не будут доставлены, так что там такой проблемы не возникает).

    Если вы изменили или тронули файл ~/.fetchmailrc во время работы демона, это обнаруживается при следующем сеансе приема почты; тогда fetchmail заново считывает настройки и перезапускает себя (используя exec()).  

    АДМИНИСТРАТИВНЫЕ ОПЦИИ

    Опция --postmaster <name> (ключ: set postmaster) задает имя пользователя, которому будет направлена почта в случае, когда не удалось определить локального получателя. Обычно это пользователь, запустивший fetchmail. Если это root, то принимается значение 'postmaster'. Пустая строка вызывает уничтожение подобной почты.

    Опция --nobounce предотвращает обычную отправку сообщений об ошибках отправителю письма. Если nobounce включено (on), то сообщение посылается пользователю postmaster.

    Опция --invisible (ключ: set invisible) пытается сделать fetchmail невидимым. Обычно fetchmail выступает в роли обычного траспортного агента (MTA) - он создает заголовок Received и указывает MTA, доставляющего почту, что она пришла от fetchmail. Если invisible включено (on), соответствующий заголовок Received не создается, и fetchmail пытается заставить агента доставки думать, что почта пришла непосредственно с почтового сервера.

    Опция --showdots (ключ: set showdots) заставляет fetchmail рисовать точки (индикатор прогресса), даже если текущий терминал не является stdout (например, лог-файл). Начиная с версии 5.3.0 точки выводятся только на stdout.

    Указав опцию --tracepolls, вы можете заставить fetchmail добавить информацию в заголовок Received в виде "polling {label} account {user}", где {label} - это метка учетной записи из указанного конфигурационного файла, обычно ~/.fetchmailrc, {user} - имя пользователя, используемое для регистрации на почтовом сервере. Этот заголовок может быть полезен для сортировки почты по разным почтовым ящикам (например, в случае, когда вы получаете письмо с сервера, ведущего список рассылки, и подписаны на этот список рассылки). По умолчанию такого заголовка не добавляется. В файле .fetchmailrc ключевое слово 'tracepolls'.  

    СБОИ ПРИ ПРИЕМЕ ПОЧТЫ

    Протоколы, используемые fetchmail при общении с почтовыми серверами, очень надежны. Обычно при пересылке на порт 25 сообщения не удаляются (и даже не метятся на удаление) на сервере до тех пор, пока агент SMTP не даст fetchmail'у подтверждения о том, что сообщение принято к доставке или отвергнуто по причине спама.

    Тем не менее, при пересылке на MDA всегда вероятны сбои. Некоторые MDA достаточно надежны и возвращают ненулевой код возврата в случае ошибки, даже по причине нехватки ресурсов. К таким принадлежат procmail, sendmail, exim. Эти программы возвращают надежное подтверждение и могут использоваться без риска потери почты. Небезопасные MDA могут возвращать 0 даже при сбое в доставке. В таком случае вы потеряете почту.

    В обычном режиме fetchmail пытается принять только новые сообщения, оставить нетронутыми (и не удаляя) сообщения, которые вы прочитали непосредственно на сервере (или принятые в предыдущем сеансе fetchmail с опцией --keep). Однако, вы можете обнаружить, что прочтенные сообщения принимаются и удаляются, даже если вы не указали опцию --all. Вот возможные причины этого.

    Одной из них является использование протокола POP2. В этом протоколе не поддерживаются состояния сообщений 'new' или 'old', поэтому fetchmail считает все сообщения всякий раз новыми. Но это маловероятно, т.к. POP2 устарел и редко используется.

    POP3 и RFC1725. В этой версии протокола POP3 нет команды LAST, но некоторые серверы POP3 следуют этому (это можно проверить, запустив "fetchmail -v"). fetchmail пытается компенсировать это использованием UID, сохраняя идентификаторы сообщений, просмотренных в каждом сеансе, в файле .fetchids. Но при этом не ведется список сообщений для остальных клиентов, а также сообщений, прочитанных почтовой программой непосредственно на сервере и не удаленных. Наилучшее решение этой проблемы - использовать протокол IMAP.

    Еще одна потенциальная проблема в использовании POP3 заключается в том, что серверы могут вставлять сообщения в середину почтового ящика (ходят слухи, что некоторые реализации mail в VMS страдают этим недостатком). fetchmail подразумевает, что новые сообщения добавляются в конец почтового ящика; в противном случае некоторые старые сообщения могут считаться новыми и наоборот. Единственное средство решения этой проблемы - использовать IMAP.

    Еще одна проблема с POP3 состоит в том, что если нельзя создать файл блокировки в домашнем каталоге пользователя, некоторые серверы POP3 возвращают недокументированный ответ, который заставляет fetchmail сообщать об отсутствии почты.

    IMAP использует наличие или присутствие флага "Seen" для определения того, новое это сообщение или старое. В Unix серверы IMAP используют флаги состояния в стиле BSD, устанавливаемые пользовательскими агентами, и в случае необходимости устанавливают флаг "Seen". Все IMAP-серверы под Unix делают это, хотя это и не описано в RFC. Если вам попадется (крайне маловероятно) сервер, не делающий этого, все старые сообщения будут казаться новыми. В этом случае сообщения, принятые fetchmail с опцией --keep, будут восстановлены и помечены как старые.

    В режимах ETRN и ODMR, fetchmail на самом деле не принимает почту; вместо этого он запрашивает SMTP-сервер начать выдачу почтовой очереди клиента по SMTP. Таким образом, пересылаются только не доставленные сообщения.

     

    ФИЛЬТРАЦИЯ СПАМА

    Многие SMTP-серверы позволяют администраторам настраивать фильтрацию спама для блокировки нежелательной почты с определенных доменов. При этом происходит проверка строк MAIL FROM и DATA, и в случае обнаружения спама формируется SMTP-ответ (который, к сожалению, разный у разных серверов).

    Последние версии sendmail возвращают код ошибки 571. Это значение зафиксировано в RFC 1893 как "Delivery not authorized, message refused" ("Доставка запрещена, сообщение отклонено").

    В соответствии с текущими проектами замены RFC 812, правильным кодом должен быть 550 "Requested action not taken: mailbox unavailable" ("Запрошенное действие не выполнено: почтовый ящик не доступен") - (также добавляют "Почтовый ящик не найден, в доступе отказано или команда отвергнута политикой безопасности").

    exim возвращает 501 "Segmentation fault (core dumped)

    Поиск по тексту MAN-ов: 




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру