Как мне безболезненно получать почту в 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 для правильной утилизации почты.
Также проверьте статью Джейсона Сайфера для более подробной информации.