我在Heroku上运行Harry的预启动器(https://github.com/harrystech/prelaunchr),并且当新用户在网站上注册时发送的欢迎电子邮件不会发送出去。 rails app正在使用Delayed :: Job,当我运行时
heroku rake jobs:work
我得到以下输出:
Rendered user_mailer/signup_email.html.erb (1.2ms)
[Worker(host:46d2c895-5e66-464b-8594-510461de915c pid:3)] Class#signup_email failed with ActionView::Template::Error: undefined method `encoding' for {:host=>"windreturns.com"}:Hash - 9 failed attempts
^注意:host =>" windreturns.com"是我的域名,但它不是网站当前所在的位置(它是genericname.herokuapp.com域名)
知道工作失败的原因吗?如何收到要发送的电子邮件?
答案 0 :(得分:0)
我不确定原因,但似乎文件""
有几个问题,可追溯到initial commit,其中包含语法错误。当前版本使用的资产链接如下:
app/views/user_mailer/signup_email.html.erb
第一个问题是<%= Rails.application.config.action_mailer.default_url_options %>/assets/logo.jpg
不是字符串,而是哈希。第二个问题是电子邮件资产位于default_url_options
。我通过将上述内容更改为:
/assets/email
你必须在九个地方这样做,然后它应该工作。
还在<%= Rails.application.config.action_mailer.default_url_options[:host] %>/assets/email/logo.jpg
文件中设置DEFAULT_MAILER_HOST="http://localhost:5000"
之类的内容。