Как мне безболезненно получать почту в linux и подавать ее на Rails?

Я всю ночь гуглил постфиксные инструкции, но все же я не мог понять, как мне удается получать электронную почту на linux-сервере (точнее, в Ubuntu).

Все, что мне нужно, это универсальный почтовый ящик, который получает все электронные письма и передает их в скрипт ruby ​​(который затем передает его в Rails, конечно). Я был в состоянии настроить postfix для отправки электронных писем некоторое время назад, и я должен сказать - это было совсем не больно, я почти ничего не делал, кроме фактической его установки.

Не могли бы вы предложить хороший Howto, или рецепт, или альтернативный простой в настройке почтовый сервер, который мог бы решить проблему?

3 ответа

Решение

Ответ состоит из двух частей, ответ Нормана Рэмси охватывает вторую часть: передачу электронного письма сценарию, подлежащему обработке. Первая часть - настройка Postfix для получения электронной почты. Так как вам нужно поймать все, вы можете поместить что-то вроде этого в /etc/postfix/aliases

@yourdomain.com localuser

И "localuser" - это имя учетной записи в вашей системе, которая имеет

/home/localuser/.forward

который содержит команду (см. ответ Нормана). Или вы можете оставить все это в Postfix

/ и т.д. / постфикса / псевдонимы:

@ yourdomain.com | / path / to / your / script

Это отправит всю электронную почту, отправленную на @ yourdomain.com, и отправит ее вашему сценарию для обработки. Имейте в виду, что сценарий будет выполняться как пользователь postfix, поэтому вам необходимо убедиться, что ваша среда настроена надлежащим образом (например, вы не полагаетесь на определенный $PATH, который есть у вашей обычной учетной записи пользователя). Пользователь postfix, вероятно, имеет очень простую среду (например, может даже не иметь /usr/local/bin в своей переменной $PATH)

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

"|/path/to/my/ruby/script"

Когда postfix доставляет почту в учетную запись, он запускает сценарий с разрешениями назначенного пользователя и предоставляет почту при стандартном вводе. В зависимости от того, что вы делаете с почтой, вы можете захотеть ее аутентифицировать, чтобы скрипт знал, что это действительно от вас. (Например, заголовок с солью и SHA1 хэш соли + пароль.)

Вот реальный пример из моей собственной почтовой системы:

"|/home/nr/bin/filtermail /home/nr/machine/x86-bsd/bin/luapipe /home/nr/machine/x86-bsd/bin/safe-slocal 2>>/home/nr/slocal.log 1>&2"

Это относится к сценарию оболочки, который затем вызывает программы Lua и C для правильной утилизации почты.

Также проверьте статью Джейсона Сайфера для более подробной информации.

http://jasonseifer.com/2009/04/24/receving-email-with-rails

Другие вопросы по тегам