fe004d31

Входящая почта (POP3, IMAP4)


Большинство людей принимают электронную почту с почтового сервера при помощи POP3. POP3 - это протокол со многими недостатками.

  1. POP3 передает пароль, как обычный текст. (Хотя есть различные реализации SSL для POP/IMAP и аутентификация типа запрос/ответ, описанные в RFC-2095/2195).

  2. POP3 - избыточный протокол: сначала клиент запрашивает сообщение, затем сервер посылает его. После этого клиент может дать серверу команды удаления принятых сообщений. Сервер подтверждает удаление. Далее сервер дает понять, что он готов к следующей команде. Таким образом, необходимо 4 команды, чтобы принять каждое письмо.

  3. POP3 передает почту без сжатия, хотя она очень хорошо компрессируется (в 3.5 раза).

Возможно осуществить сжатие POP3, перенаправляя соединения с адреса localhost:110 через сжатое соединение к вашему провайдеру на порт POP3. Для этого необходимо в почтовой программе установить сервер входящей почты в localhost:110. Это безопасное и быстрое соединение, но оно все еще зависит от недостатков протокола POP3.

Имеет смысл заменить POP3 на более эффективный протокол. Идея заключается в том, чтобы перекачивать все содержимое почтового ящика, хранящегося на почтовом сервере, без какого-то ни было почтового протокола. SCP - хорошая утилита для выполнения этого. Вы можете скачать ваш почтовый ящик примерно так:

scp -C -l имя:/var/spool/mail/loginid /tmp/newmail

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

ssh -l имя почтовый_сервер -f mv /var/spool/mail/имя /tmp/имя_fetchme

scp -C -l имя:/tmp/my_;new_;mail /tmp/имя_fetchme

mv - это простая операция, мгновенно переносящая файл в другое место, так что у вас не будет проблем, если придет новая почта. Но если каталоги /tmp/ и /var/spool/mail находятся на разных дисках/разделах, у вас все-таки могут возникнуть некоторые трудности. Решение - это создать файл блокировки на сервере перед тем, как перекачивать почту: touch /var/spool/mail/имя.lock. Вы должны убрать его после того, как закончите перекачку. А еще лучше, переименовать почтовый ящик внутри этого же каталога:

ssh -l имя почтовый_сервер -f mv /var/spool/mail/имя /var/spool/mail/имя_fetchme

Затем обработайте полученный почтовый ящик /tmp/newmail, при помощи команд formail и procmail: formail -s procmail < /tmp/newmail



Содержание раздела