Отправить электронную почту с Rails 3 в режиме разработки, в автономном режиме? - PullRequest
3 голосов
/ 11 марта 2011

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

Я представляю, как приложение Rails отправляет встроенную в Mac OS X программу Linux CLI mail, но я не знаю, как это настроить.

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

Кто-нибудь поможет мне с этим?

Ответы [ 3 ]

11 голосов
/ 08 апреля 2011

Вот и все! MockSMTP (по крайней мере для OS X)


ОБНОВЛЕНИЕ: Возможно, это даже лучше: MailCatcher .Поскольку он работает на Ruby / Web, он не зависит от платформы и не требует оплаты лицензии на программное обеспечение для настольных компьютеров.Кроме того, если вы используете его с Google Chrome, он использует WebSockets для обновления в реальном времени, когда приходит новое сообщение!Круто!

4 голосов
/ 18 марта 2012

Использование MailCatcher . Это гем, который работает на локальном сервере (localhost: 1080) и отображает исходящие электронные письма из приложения Rails в имитированном браузером клиенте электронной почты.

$ gem install mailcatcher
$ mailcatcher
  1. Перейти к http://localhost:1080/
  2. Отправка почты через smtp: // localhost: 1025
3 голосов
/ 11 марта 2011

Хотя я сам не запускаю OS X, я работаю с OS Xers, и мы все используем sendmail в разработке. Все, что вам нужно сделать, это настроить его только для вашей среды разработки.

В config/environments/development.rb:

AppName::Application.configure do

  # …

  config.action_mailer.delivery_method = :sendmail
  config.action_mailer.sendmail_settings = {
    :location => '/usr/sbin/sendmail',
    :arguments => '-i -t'
  }

end

Затем в своем почтовом ящике вы можете добавить приватный метод, чтобы определить, кому отправлять электронные письма, если вы беспокоитесь о случайном отправлении писем пользователям / случайным адресам электронной почты:

class UserMailer < ActionMailer
  default :from => 'from.email@example.com'

  def welcome(user)
    @user = user
    mail(
      :subject => "Hello World",
      :to => recipient(@user.email)
    )
  end

private

  def recipient(email_address)
    return 'developer.email@example.com' if Rails.env.development?
    email_address
  end

end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...