Хороший пример обработки электронной почты в Ubuntu для проекта rails - PullRequest
1 голос
/ 14 июня 2009

Проблемы с приложением rails 2.2.2, работающим на VPS (Ubuntu 8.10): поиск репозиториев github, публикаций, всего, что касается правильного способа настройки обработки электронной почты. Например, он должен использовать sendmail или smtp?

Ответы [ 2 ]

2 голосов
/ 14 июня 2009

Это не зависит от Ubuntu.

Настройка отправки почты на самом деле не дает «правильного» ответа. Если у вас есть sendmail, работающий на вашем компьютере (так что работает «mail foo@bar.com»), используйте это.

Если у вас локально работает SMTP-сервер, который работает, используйте его.

Более конкретный ответ действительно зависит от того, что вы говорите:

  • Что вы пробовали?
  • Как это не удалось?
0 голосов
/ 14 июня 2009

Вы хотите отправить или получить электронное письмо (или оба)?

Ответы будут разными в каждом случае и могут (или не могут) включать настройку почтового сервера на VPS.

Если вам нужно настроить почтовый сервер, я нашел лучшие руководства (подробные и пошаговые) от slicehost: Настройка и настройка почтового сервера

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

Затем вам нужно написать некоторый код для извлечения этих писем с сервера POP или IMAP и передачи их обработчику входящей почты (который обычно основан на ActionMailer). Одним из простых способов написания кода извлечения является использование модуля извлечения, который включает в себя следующую общую схему взаимодействия с почтовым сервером:

  1. Подключение к удаленному серверу (POP или IMAP)
  2. Скачать доступные сообщения
  3. Обработка каждого сообщения (передача его другому объекту)
  4. Удалить все загруженные сообщения с удаленного сервера

вам нужно создать экземпляр класса Fetcher, передав класс класса объекта, который будет обрабатывать электронные письма (плюс любые другие необходимые параметры конфигурации), затем вызвать метод fetch, выполнив шаги 1-4 выше.

Плагин находится на Github: http://github.com/look/fetcher/tree/master, и вы можете использовать его как для создания демона (т. Е. Процесса, который находится в цикле, опрашивающем почтовый сервер на предмет новых сообщений), так и для написания пакета файл для запуска из cron (взят из документации по плагину):

begin
  Lockfile.new('cron_mail_fetcher.lock', :retries => 0) do
    config = YAML.load_file("#{RAILS_ROOT}/config/mail.yml")
    config = config[RAILS_ENV].to_options

    fetcher = Fetcher.create({:receiver => MailReceiver}.merge(config))
    fetcher.fetch
  end
rescue Lockfile::MaxTriesLockError => e
  puts "Another fetcher is already running. Exiting."
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...