【发布时间】:2016-03-29 13:09:14
【问题描述】:
我正在关注 Daniel Kehoe 的《学习 Ruby on Rails》一书,当我尝试发送邮件时,出现以下错误。
ArgumentError at /contacts 需要一个 SMTP To 地址才能发送 信息。设置消息 smtp_envelope_to、to、cc 或 bcc 地址。
更好的错误 gem 指向联系人控制器中的UserMailer.contact_email(@contact).deliver。
我已经做了一些研究,并且在错误发生之前按照书中关于在我的 .bash_profile 文件中设置环境变量的说明进行了操作。
非常感谢任何帮助。
更新
根据回复,谢谢。我已经设置了邮件(到:)
def contact_email(contact)
@contact = contact
mail(to: Rails.application.secrets.owner_email, from: @contact.email, :subject => "Website Contact")
end
我设置了 smtp 设置:
config.action_mailer.smtp_settings = {
address: "smtp.gmail.com",
port: 587,
domain: Rails.application.secrets.domain_name,
authentication: "plain",
enable_starttls_auto: true,
user_name: Rails.application.secrets.email_provider_username,
password: Rails.application.secrets.email_provider_password
}
更新 2
谢谢。在下面找到秘密:) 我在这里排除了密钥库
development:
email_provider_username: <%= ENV["GMAIL_USERNAME"] %>
email_provider_password: <%= ENV["GMAIL_PASSWORD"] %>
domain_name: example.com
mailchimp_api_key: <%= ENV["MAILCHIMP_API_KEY"] %>
mailchimp_list_id: <%= ENV["MAILCHIMP_LIST_ID"] %>
owner_email: <%= ENV["OWNER_EMAIL"] %>
secret_key_base: 'my secret key_base'
test:
secret_key_base: 'my secret key_base'
production:
email_provider_username: <%= ENV["GMAIL_USERNAME"] %>
email_provider_password: <%= ENV["GMAIL_PASSWORD"] %>
domain_name: <%= ENV["DOMAIN_NAME"] %>
mailchimp_api_key: <%= ENV["MAILCHIMP_API_KEY"] %>
mailchimp_list_id: <%= ENV["MAILCHIMP_LIST_ID"] %>
owner_email: <%= ENV["OWNER_EMAIL"] %>
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
【问题讨论】:
-
您在邮件中调用
mail()时是否将to:选项设置为有效的电子邮件? -
谢谢。我做到了。请参阅上面的更新
-
显示你的 secrets.yml
-
@infused 感谢您的格式化。格式化后,我更加了解如何进行格式化。感谢并为糟糕的格式感到抱歉。
-
@SergioTulentsev 请查看机密文件。谢谢
标签: ruby-on-rails ruby-on-rails-4 learn-ruby-on-rails