Action Mailer NameError:未定义的局部变量或方法“smtp”
Posted
技术标签:
【中文标题】Action Mailer NameError:未定义的局部变量或方法“smtp”【英文标题】:Action Mailer NameError: Undefined local variable or method `“smtp' 【发布时间】:2014-10-20 02:42:26 【问题描述】:我正在尝试设置 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】:这是因为您使用智能引号 “ ”
而不是 " "
,可能来自复制/粘贴。将这些替换为标准引号:
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"]
【讨论】:
以上是关于Action Mailer NameError:未定义的局部变量或方法“smtp”的主要内容,如果未能解决你的问题,请参考以下文章
用于 webmail 的 rails 4 action mailer 设置 (SMTP)
Action Job/Mailer 的 `deliver_now` 和 `deliver_later` 之间的区别