2015-07-26 2 views
9

На данный момент я работаю над внедрением Mailgun в мое приложение для рельсов, но, похоже, я смущен лучшим методом.Mailgun for Rails Приложение

Способ, которым я уже реализован, - это настроить области, добавить gemfile и затем установить фоновый процессор с помощью Active Job. Я еще не установил фоновый процессор из-за неуверенности, если это лучший способ.

Я видел, как другие ресурсы говорят, что я должен просто использовать дополнение Heroku, а затем дополнительное минимальное кодирование. Я также хочу упомянуть, что у меня есть настройка Devise, поэтому мне не нужны электронные письма, отправленные для типичных ситуаций.

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

Сторона примечания: Мне также было сказано по пути «Не запускайте отправку электронной почты с обратного вызова ActiveRecord - сделайте это с контроллер ". Я написал это, чтобы напомнить, когда пришло время, и вот я = P. Согласны ли вы с этим утверждением?

Я могу добавить код, если это поможет, но я запутался, какой код будет на самом деле полезно ...

Спасибо так много!

Джо

Редактировать

Еще один вопрос: В идеале я хотел бы иметь возможность посылать пользовательскую электронную почту для всех пользователей приложения (IE: Еженедельные обновления, новые возможности сайта, и т.д.). Может ли Mailgun быть правильным способом сделать это?

ответ

5

Mailgun ничем не отличается от Sendgrid или Mandrill, поэтому при поиске некоторых рекомендаций вы также можете рассмотреть эти решения. Руки вниз по лучшему руководству для вашего случая использования - Sending Emails in Rails Applications. Вы также можете выбрать из существующих драгоценных камней в Mailgun API Official gem или ActiveRecord integration.

Способ, которым я уже был реализован, - это настроить области, добавить gemfile , а затем настроить фоновый процессор с помощью активного задания. I еще не установили фоновый процессор из-за неуверенности, если это лучший способ.

Да, это правильный способ настройки. До Rails 4.2, и я полагаю, что большинство из тех, кто кодируются без существования ActiveJob все еще предпочитают такие вещи, как диджей, sidekiq или спасательное, и они очень популярны и их можно найти практически в каждом приложении Rails , Вы можете использовать их с интерфейсом ActiveJob. Тем не менее, концепция одна и та же.

Чтобы дать вам представление о недостающей части кода, вы можете сделать что-то вроде этого (с 1-го звена)

class ExampleMailer < ActionMailer::Base 

    def sample_email(user) 
    @user = user 
    mg_client = Mailgun::Client.new ENV['api_key'] 
    message_params = {:from => ENV['gmail_username'], 
         :to  => @user.email, 
         :subject => 'Sample Mail using Mailgun API', 
         :text => 'This mail is sent using Mailgun API via mailgun-ruby'} 
    mg_client.send_message ENV['domain'], message_params 
    end 
end 

Side Примечание: Я также сказал по пути «Дон» t вызвать по электронной почте , отправляя с обратного вызова ActiveRecord - сделайте это с контроллера ». I написал это, чтобы ссылаться на то, когда пришло время для этого, и вот я = P Согласны ли вы с этим заявлением?

Я определенно соглашусь с утверждением. Одно дело, что привязка всего к обратным вызовам ActiveRecord может показаться действительно практичным с первого взгляда, но затем, по мере того, как приложение растет, вы увидите, что вы вставляете условные утверждения или используете такие вещи, как государственные машины, которые должны быть закрыты. Дело в том, что вы можете создавать записи в своем приложении из нескольких источников (регистрация пользователей, импорт и т. Д.), А не в каждом случае, когда вы хотите отправить электронное письмо. Кроме того, для меня и для новых членов команды более практично видеть его непосредственно в коде контроллера, а не через обратные вызовы моделей. В конечном итоге это можно рассматривать и как личное предпочтение.

Если вы используете Heroku - тогда взгляните на это Delayed Job guide. На Heroku вам придется запускать эти фоновые процессы в отдельных рабочих (которые не являются бесплатными), так как некоторые экономически эффективные решения берут добычу на уровне Running delayed jobs on Heroku for free.

+0

Большое спасибо - ваш ответ был очень информативным =) Код, который вы предоставили, на самом деле является тем, что у меня уже есть, и я просто передал это. Еще один вопрос об этом, о котором я упоминал, - а как насчет отправки пользовательских писем? IE: Обновления сайта, новые функции и т. Д. Может ли быть достаточно злокачественного для этого? Методы, которые я прочитал, все говорят об автоматическом электронном письме, поэтому, когда пользователь подписывается или выполняет определенное действие, электронное письмо отправляется автоматически. Я хотел бы добавить настраиваемый контент, который изменяется и отправляется всем. Спасибо = P –

+1

Да, ситуация не имеет значения. Mailgun подходит также для таких случаев использования. Вы можете запланировать почту, чтобы сказать 30 дней после регистрации, первый день месяца, каждый понедельник .. для всех этих Mailgun является подходящим кандидатом, игнорируя содержание сообщения электронной почты - это не имеет значения. – adamliesko

+0

Фантастично, спасибо за разъяснение! –

Смежные вопросы