1

导轨 3.0.0

这是我在环境/production.rb 中的配置:

  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {  
    :address              => "smtp.gmail.com",  
    :port                 => 587,  
    :domain               => "<domain>",  
    :user_name            => "<un>@gmail.com",  
    :password             => "<pw>",  
    :authentication       => "plain",  
    :enable_starttls_auto => true  
  }

  config.action_mailer.raise_delivery_errors = true

  config.action_mailer.perform_deliveries = true  

我还尝试按照另一篇 Stack Overflow 帖子中的建议注释掉该域。

我尝试通过我的应用程序和控制台发送邮件。在控制台中没有错误,它返回邮件对象但不显示任何其他内容。当我尝试通过应用程序发送时,日志显示它呈现了我的用户邮件模板。

我在 Linode 上托管我的应用程序,但他们向我保证这种方法“应该”有效,并且 Linode 不应该是问题。我还检查以确保我的应用程序正在“生产”中运行。

调试这个有什么想法吗?我尝试发送到三个不同的常见电子邮件主机。

编辑:这是我在控制台中发送邮件的代码:

user_mailer.rb

class UserMailer < ActionMailer::Base
  default :from => "myaccount@gmail.com"
  layout 'user_layout' 

  def activation(user)
    @user = user    
    mail(:to => @user.email, :subject => 'Activate your account')  
  end

end

console command

> u = User.last
> u.email
#myotheraccount@gmail.com
> UserMailer.activation(u).deliver

更新 2:当我添加一个纯文本视图模板时,发送很好。所以只是发送 HTML 版本有问题。我已经简化了我所有的 HTML 模板以包含简单的标签和标准的 doctype html,但仍然没有骰子。

4

0 回答 0