Ubuntu 在AmazonEC2实例上运行Rails3.2的Gmail的ActionMailer设置

Ubuntu 在AmazonEC2实例上运行Rails3.2的Gmail的ActionMailer设置,ubuntu,amazon-ec2,ruby-on-rails-3.2,gmail,actionmailer,Ubuntu,Amazon Ec2,Ruby On Rails 3.2,Gmail,Actionmailer,背景 试图解决Rails3.2.x中ActionMailer的Gmail设置在AmazonEC2的Ubuntu实例上运行的问题。应用程序正在使用Nginx+Passenger运行 设置如下所示 文件:config/environments/production.rb config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = { :address => "s

背景

试图解决Rails3.2.x中ActionMailer的Gmail设置在AmazonEC2的Ubuntu实例上运行的问题。应用程序正在使用Nginx+Passenger运行

设置如下所示

文件:config/environments/production.rb

config.action_mailer.delivery_method = :smtp
      config.action_mailer.smtp_settings = {
         :address => "smtp.gmail.com",
         :port => 587,
         :domain => "gmail.com",
         :authentication => :plain,
         :user_name => "<username>@gmail.com",
         :password => "<secret-word>",
         :enable_starttls_auto => true
 }
def email_test_send
   @email = params[:email]
   @message = Message.find(params[:id])

   @member = Member.find_by_last_name("Bloggs")
   MemberMailer.delay.all_member_email(@member.email, @message)

   redirect_to messages_path, :notice => "Test Email has been sent."
 end
MemberMailer类定义为:

class MemberMailer < ActionMailer::Base
  default from: "blah@gmail.com"
  default cc: "blah1@gmail.com, blah2@gmail.com"
  default content_type: "text/html"

  # send a message to member
  def all_member_email(email, message)

      @message = message
      mail(:to => email, :subject => message.subject)
  end
class MemberMaileremail,:subject=>message.subject)
结束
结束

系统使用延迟任务Gem进行后台处理,并在有后台任务处理和无后台任务处理的情况下对发送进行了测试

结果

问题是没有发送任何消息,出现以下情况

  • production.log中的输出(日志级别设置为DEBUG

    通过EmailListController处理#电子邮件_测试_以HTML形式发送 参数:{“utf8”=>“✓", "真实性令牌“=>”D5ZCb+Ha63WbPmd47/1/P3rpFJFiSbnrYya+YaSmBic=“,”电子邮件“=>”blah@gmail.com“,”提交“=>”提交“,”id“=>”1“,”方法“=>”发布“}

  • 没有传递消息

  • Google帐户已发送文件夹不显示任何出站邮件详细信息

  • 已验证EC2上的服务器可以通过telnet 587连接到Google SMTP服务器

  • 调查了其他堆栈溢出问题,如

  • 在delayed_jobs表中的数据库中未找到任何故障


  • 还有什么地方需要查看吗?我已经尝试重新启动服务器以确保干净地加载配置文件等,但没有成功。

    请确保在
    config/environments/production.rb
    中设置这两个选项:

    config.action_mailer.raise_delivery_errors = true
    config.action_mailer.perform_deliveries = true