Вы хотите отправить или получить электронное письмо (или оба)?
Ответы будут разными в каждом случае и могут (или не могут) включать настройку почтового сервера на VPS.
Если вам нужно настроить почтовый сервер, я нашел лучшие руководства (подробные и пошаговые) от slicehost: Настройка и настройка почтового сервера
Если вам нужно просто получать электронные письма, лучше всего избегать установки почтового сервера и разрешать вашему поставщику услуг (или Moogle) обрабатывать входящую электронную почту.
Затем вам нужно написать некоторый код для извлечения этих писем с сервера POP или IMAP и передачи их обработчику входящей почты (который обычно основан на ActionMailer). Одним из простых способов написания кода извлечения является использование модуля извлечения, который включает в себя следующую общую схему взаимодействия с почтовым сервером:
- Подключение к удаленному серверу (POP или IMAP)
- Скачать доступные сообщения
- Обработка каждого сообщения (передача его другому объекту)
- Удалить все загруженные сообщения с удаленного сервера
вам нужно создать экземпляр класса 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