Большинство людей принимают электронную почту с почтового сервера при помощи POP3. POP3 - это протокол со многими недостатками.
POP3 передает пароль, как обычный текст. (Хотя есть различные реализации SSL для POP/IMAP и аутентификация типа запрос/ответ, описанные в RFC-2095/2195).
POP3 - избыточный протокол: сначала клиент запрашивает сообщение, затем сервер посылает его. После этого клиент может дать серверу команды удаления принятых сообщений. Сервер подтверждает удаление. Далее сервер дает понять, что он готов к следующей команде. Таким образом, необходимо 4 команды, чтобы принять каждое письмо.
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
Передача электронной почты через сжатое и шифрованное SSH-соединение обеспечивает:
Уменьшение трафика сети
Безопасность (впрочем, это не имеет смысла, если далее почта идет по незащищенным сетям)
Аутентификация посылающего. Большинство почтовых серверов не принимают почту с других машин, предназначенную для внешней доставки (relay). Если вы посылаете почту через SSH-соединение, почтовый сервер (sendmail или MS-exchange) думает, что она посылается с локальной программы...
Если на почтовом сервере установлен доступ SSH, используйте следующую команду:
ssh -C -l имя почтовый_сервер -L2525:почтовый_сервер:25
Если у вас нет SSH-доступа к почтовому серверу, но есть сервер с SSH, которому разрешена связь с другими машинами, вы можете использовать его:
ssh -C -l имя другой_сервер -L2525:почтовый_сервер:25
После этого вы можете настроить свою почтовую программу (или почтовый сервер: см. "smarthost") так, чтобы она посылала исходящую почту через localhost:2525.