Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.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版本3.2.5中使用action mailer发送电子邮件_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 在rails版本3.2.5中使用action mailer发送电子邮件

Ruby on rails 在rails版本3.2.5中使用action mailer发送电子邮件,ruby-on-rails,ruby,Ruby On Rails,Ruby,我知道这是一个简单的问题,被问了很多次,我也问了很多次,因为我之前检查的所有问题都基于rails 3.0.0版本,我使用的是最新版本。我有一个包含姓名和电子邮件字段的用户注册表。我想这样做,当用户单击“提交”按钮时,我正在使用rails 3.2.5版本的用户应将电子邮件发送到指定的电子邮件地址,而gem“mail”2.4.4版本的开发日志文件显示邮件已发送到电子邮件地址,但在收件箱中找不到。我还知道,在开发模式下,action mailer不会向任何地址发送邮件,但我希望在开发阶段这样做。我的代

我知道这是一个简单的问题,被问了很多次,我也问了很多次,因为我之前检查的所有问题都基于rails 3.0.0版本,我使用的是最新版本。我有一个包含姓名和电子邮件字段的用户注册表。我想这样做,当用户单击“提交”按钮时,我正在使用rails 3.2.5版本的用户应将电子邮件发送到指定的电子邮件地址,而gem“mail”2.4.4版本的开发日志文件显示邮件已发送到电子邮件地址,但在收件箱中找不到。我还知道,在开发模式下,action mailer不会向任何地址发送邮件,但我希望在开发阶段这样做。我的代码是:

/config/initializers/setup_mail.rb

ActionMailer::Base.smtp_settings = {
:address              => "smtp.gmail.com",
:port                 => 587,
:domain               => "asciicasts.com",
:user_name            => "asciicasts",
:password             => "secret",
:authentication       => "plain",
:enable_starttls_auto => true
}
/app/mailers/user_mailer.rb

class UserMailer < ActionMailer::Base
default :from => "eifion@asciicasts.com"

def registration_confirmation(user)
mail(:to => user.email, :subject => "Registered")
end
end

所以请大家帮帮我。

我最近也遇到过类似的事情

config/environments/development.rb

config.action\u mailer.perform\u deliveries=true
#这个条目让我觉得应该发送电子邮件,因为它们是在一位同事升级之前发送的

我还发现这些电子邮件没有被发送。翻找,我发现
config/email.yml
它看起来像这样:

development:
  :delivery_method: test
  :settings:
    :address: <email_server_address>
    :port: 25
开发:
:交付方法:测试
:设置:
:地址:
:端口:25
当我将
:delivery\u method:test
更改为
:delivery\u method:sendmail
(这是我们公司使用的)时,它开始工作了


总之,,我发现
config/email.yml
中的设置是最后一次评估的,它将胜过您个人环境文件中的任何设置。

对于开发环境,默认情况下
config.action\u mailer.raise\u delivery\u errors=false
,这意味着rail不会尝试发送电子邮件,但您仍然可以在日志中查看整个电子邮件存档以供核实。因此,首先将此属性值设置为true,重新启动服务器并尝试再次发送。这可能有助于您通过分析日志来发现问题。我仍然坚持在development.log文件中添加相同的问题已发送邮件条目,但未显示在我的收件箱中。我还完成了config.action\u mailer.raise\u delivery\u errors=true,但它不起作用。欢迎您的建议。ohh我通过在development.rb文件中指定smtp设置来完成此操作代码是'config.action\u mailer.raise\u delivery\u errors=true config.action\u mailer.delivery\u method=:smtp config.action\u mailer.smtp\u settings={:address=>“smtp.gmail.com”,:port=>587,:domain=>'triffort.com',:user\u name=>'您的完整邮件地址',:password=>'您的密码',:authentication=>'普通',:enable\u starttls\u auto=>true}
development:
  :delivery_method: test
  :settings:
    :address: <email_server_address>
    :port: 25