Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.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 3 继续获取发送邮件所需的发件人(返回路径、发件人或发件人)_Ruby On Rails 3_Actionmailer_Ruby On Rails 3.2_Return Path - Fatal编程技术网

Ruby on rails 3 继续获取发送邮件所需的发件人(返回路径、发件人或发件人)

Ruby on rails 3 继续获取发送邮件所需的发件人(返回路径、发件人或发件人),ruby-on-rails-3,actionmailer,ruby-on-rails-3.2,return-path,Ruby On Rails 3,Actionmailer,Ruby On Rails 3.2,Return Path,我只是这样称呼它,SupportMailer.support\u response(@message.deliver 如何修复此问题?我注意到您没有case语句的默认case。如果您从未在Mailer类中的方法中调用过“mail”方法,那么您将得到该错误。尝试将您的案例陈述转移到您调用SupportMailer的位置,可能每个案例都有相应的方法。这样,除非你已经确定了正确的彩票游戏,否则你永远不会给支持者打电话。肯定不需要标题;代码看起来是正确的,在您的例子中,default:from被调用ma

我只是这样称呼它,
SupportMailer.support\u response(@message.deliver


如何修复此问题?

我注意到您没有case语句的默认case。如果您从未在Mailer类中的方法中调用过“mail”方法,那么您将得到该错误。尝试将您的案例陈述转移到您调用SupportMailer的位置,可能每个案例都有相应的方法。这样,除非你已经确定了正确的彩票游戏,否则你永远不会给支持者打电话。

肯定不需要标题;代码看起来是正确的,在您的例子中,
default:from
被调用
mail
方法中的值覆盖。我会往上游看,哪里有船!方法,或者在环境文件中调用。错误来自交付后的第一次测试之一!方法。我已在控制器中查找。看起来不错。我的配置看起来很好。我将发布它们我已经在方法
标题“returnpath”=>中添加了这一行email1@gmail.com“
现在它抱怨说,
至少需要一个收件人(收件人、抄送或密件抄送)才能发送一条信息
,看起来
邮件(…)
没有接收到它的参数。嗯--我用我的gmail帐户进行了测试,举个简单的例子。也许我看到了这个问题:我看到的所有建议都建议从一个环境文件中定义配置(我把我的放在
app/config/environments/development.rb
只是为了测试。它启动了
config.action\u mailer.raise\u delivery\u errors=true
config.action\u mailer.delivery\u method=:smtp
config.action\u mailer.smtp\u设置={
…也许这就是问题所在?否则,我会说:简化——去掉所有不必要的东西。这是正确的。理想情况下,从邮件中提取逻辑。如果你不想,你总是可以这样做:
self.message.perform\u deliveries=false
如果你决定中止传递,不要调用return,因为它会继续传递执行并抛出相同的错误。
class SupportMailer < ActionMailer::Base
  default :from => "email1@gmail.com"

  def welcome_email(ticket)
    case ticket.game
    when "gameone"
        @ticket = ticket
        headers["Reply-to"] = "email1+#{ticket.token}@gmail.com"
        headers["Return-Path"] = "email1+#{ticket.token}@gmail.com"
        mail(:from => "email1@gmail.com", :to => ticket.email, :subject => "Welcome to 1 Support Ticket")
    when "gametwo"
        @ticket = ticket
        headers["Reply-to"] = "email2+#{ticket.token}@gmail.com"
        headers["Return-Path"] = "email2+#{ticket.token}@gmail.com"
        mail(:from => "email2@gmail.com", :to => ticket.email, :subject => "Welcome to 2 Support Ticket")
    when "gamethree"
        @ticket = ticket
        headers["Reply-to"] = "email3+#{ticket.token}@gmail.com"
        header["Return-Path"] = "email3+#{ticket.token}@gmail.com"
        mail(:from => "email3@gmail.com", :to => ticket.email, :subject => "Welcome to 3 Support Ticket")
    end
  end
end
ActionMailer::Base.smtp_settings = {
  :address              => "smtp.gmail.com",
  :port                 => 587,
  :domain               => "gmail.com",
  :user_name            => "emailx@gmail.com",
  :password             => "password",
  :authentication       => "plain",
  :enable_starttls_auto => true
}