Action Mailer NameError:未定义的局部变量或方法`“smtp”

时间:2014-08-26 17:10:36

标签: ruby-on-rails email devise actionmailer nameerror

我试图在我的开发环境中设置Action Mailer为Devise发送重置密码电子邮件。我在启动本地服务器时收到以下错误:未定义的本地变量或方法`“smtp',指的是"地址:”smtp.gmail.com“"我的代码中的行。这是我在development.rb文件中添加的Action Mailer代码:

config.action_mailer.raise_delivery_errors = true
config.action_mailer.perform_deliveries = true
config.action_mailer.delivery_method = :smtp

config.action_mailer.smtp_settings = {
address: “smtp.gmail.com”,
port: 587,
domain: ENV["GMAIL_DOMAIN"],
authentication: “plain”,
enable_starttls_auto: true,
user_name: ENV["GMAIL_USERNAME"],
password: ENV["GMAIL_PASSWORD"]
}

我在根目录中的.env文件中设置了环境变量。 谢谢!

1 个答案:

答案 0 :(得分:17)

这是因为您使用智能引号“ ”代替" ",可能来自复制/粘贴。用标准引号替换它们:

config.action_mailer.raise_delivery_errors = true
config.action_mailer.perform_deliveries = true
config.action_mailer.delivery_method = :smtp

config.action_mailer.smtp_settings = {
address: "smtp.gmail.com",
port: 587,
domain: ENV["GMAIL_DOMAIN"],
authentication: "plain",
enable_starttls_auto: true,
user_name: ENV["GMAIL_USERNAME"],
password: ENV["GMAIL_PASSWORD"]
}