Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 4 ActionMailer问题_Ruby On Rails_Ruby On Rails 4_Actionmailer - Fatal编程技术网

Ruby on rails Rails 4 ActionMailer问题

Ruby on rails Rails 4 ActionMailer问题,ruby-on-rails,ruby-on-rails-4,actionmailer,Ruby On Rails,Ruby On Rails 4,Actionmailer,我创建了一个rails应用程序,用于在线预订出租车。我希望我的应用程序能够在用户的预订确认后向他们发送电子邮件。为此,我跟随Ryan Bates铁路公司: https://www.youtube.com/watch?v=v1KI571TdUQ 我首先在app/config/initializers中创建了一个setup_mail.rb文件,内容如下: ActionMailer::Base.smtp_settings = { :address => "smtp.

我创建了一个rails应用程序,用于在线预订出租车。我希望我的应用程序能够在用户的预订确认后向他们发送电子邮件。为此,我跟随Ryan Bates铁路公司:

https://www.youtube.com/watch?v=v1KI571TdUQ

我首先在app/config/initializers中创建了一个setup_mail.rb文件,内容如下:

ActionMailer::Base.smtp_settings = {
  :address              => "smtp.gmail.com",
  :port                 => 587,
  :domain               => "railscasts.com",
  :user_name            => "taxibol",
  :password             => "secret",
  :authentication       => "plain",
  :enable_starttls_auto => true
}
然后,我生成了一个名为user_mailer的邮件程序,并在app/mailers/user_mailer.rb中包含以下内容:

class UserMailer < ActionMailer::Base
    default :from => "no-reply@taxibol.in"
  def registration_confirmation(user)
    mail(:to => user.email, :subject => "Registered")
  end
end
最后,在我的static_pages_controller.rb中,我包括以下内容:

class StaticPagesController < ApplicationController
    def booking_confirmation
        UserMailer.registration_confirmation(current_user).deliver
    end
end

再次获得相同的日志跟踪,但尚未收到邮件:(

我不确定您是否尝试保留:user\u name和完整的域扩展名。因此应该是这样的:

ActionMailer::Base.smtp_settings = {
 :address              => "smtp.gmail.com",
 :port                 => 587,
 :domain               => "railscasts.com",
 :user_name            => "contactus@taxobol.in",
 :password             => "secret",
 :authentication       => "plain",
 :enable_starttls_auto => true
}

此外,谷歌应用程序每天有100封电子邮件的限制。请检查您是否已经用完了该限制,这可能是造成此情况的原因。

您可以尝试设置自己的gmail凭据吗?

用户名中尝试一个
gmail
id也尝试了一下……但没有结果:(顺便说一句…什么应该进入域?有什么想法吗?域是正确的,更改默认值:从地址开始,然后再试一次..我会先用
mailcatcher
试试。d-side:我用mailcatcher试过了,效果很好。所以问题似乎出在SMTP设置中。有人能指出我在SMTP设置中哪里出错了吗?提前谢谢!
Started GET "/booking/confirmation" for 127.0.0.1 at 2014-12-13 08:30:14 -0800
Processing by StaticPagesController#booking_confirmation as HTML
  ←[1m←[35mUser Load (2.5ms)←[0m  SELECT  "users".* FROM "users"  WHERE "users"."id" = 1  ORDER BY "users"."id" ASC LIMIT 1
  Rendered user_mailer/registration_confirmation.text.erb (0.0ms)

UserMailer#registration_confirmation: processed outbound mail in 10.0ms

Sent mail to rahul.pod@gmail.com (2037.5ms)
Date: Sat, 13 Dec 2014 08:30:14 -0800
From: no-reply@taxibol.in
To: rahul.pod@gmail.com
Message-ID: <548c6996cb448_32b42adff3848954@Rolu.mail>
Subject: Registered
Mime-Version: 1.0
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit

Welcome to example.com!
===============================================

You have successfully signed up to taxibol.in.

Thanks for joining and have a great day!
config.action_mailer.raise_delivery_errors = true
  config.action_mailer.default_url_options = {host: 'localhost', port: 3000}

  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
    address: "smtp.gmail.com",
    port: "587",
    domain: "gmail.com"
    authentication: "plain",
    enable_starttls_auto: true,
    user_name: "no_reply@taxibol.in"
    password: "some_password"
  }
ActionMailer::Base.smtp_settings = {
 :address              => "smtp.gmail.com",
 :port                 => 587,
 :domain               => "railscasts.com",
 :user_name            => "contactus@taxobol.in",
 :password             => "secret",
 :authentication       => "plain",
 :enable_starttls_auto => true
}