我正在开发一个具有电子邮件功能的应用程序,我想在本地发送电子邮件给自己(因为,我可以完全断开我的开发机器与互联网的连接,并且仍然可以发送和接收这些测试电子邮件,我的电脑)。
我想Rails应用程序发送到Mac OS X的内置Linux CLI mail
程序,但我不知道如何设置它。
我想这样做,所以我可以向自己发送无限数量的测试电子邮件,而不必担心将自己锁定在GMail帐户上或烧毁Sendgrid等人的免费信用,或者等待消息制作一个往返一些服务器等等。
有人帮我这个吗?
答案 0 :(得分:11)
就是这样! MockSMTP(对于OS X,至少)
更新:这可以说更好:MailCatcher。由于它是基于Ruby / Web的,它与平台无关,并且不需要为桌面软件支付许可费。此外,如果您将其与Google Chrome一起使用,它会在新邮件到达时使用WebSockets进行实时更新!酷!
答案 1 :(得分:4)
使用MailCatcher。它是一个在本地服务器上运行的gem(localhost:1080),并在浏览器呈现的模拟电子邮件客户端中显示来自Rails应用程序的外发电子邮件。
$ gem install mailcatcher
$ mailcatcher
答案 2 :(得分:3)
虽然我自己不运行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