我试图在我的开发环境中设置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文件中设置了环境变量。 谢谢!
答案 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"]
}