为什么我得到:发送邮件需要一个 SMTP 收件人地址。 "Set the message smtp_envelope_to, to, cc, or bcc address."?
Why do I get: An SMTP To address is required to send a message. "Set the message smtp_envelope_to, to, cc, or bcc address."?
我正在关注 Daniel Kehoe 在 Rails 一书中的学习 Ruby,当我尝试发送邮件时,出现以下错误。
ArgumentError at /contacts An SMTP To address is required to send a
message. Set the message smtp_envelope_to, to, cc, or bcc address.
更好的错误 gem 指向联系人控制器中的 UserMailer.contact_email(@contact).deliver
。
我做了一些研究,在出现错误之前,我按照书中关于在我的 .bash_profile 文件中设置环境变量的说明进行了操作。
非常感谢任何帮助。
更新
根据回复,谢谢。我已经设置了邮件 (to: )
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"] %>
通过一些侦探工作,我偶然发现了一个只需要重新启动终端的解决方案
问题如上。早些时候,我在 .bash_profile 文件中填写了以下环境变量。
export GMAIL_USERNAME="my_email@gmail.com"
export GMAIL_PASSWORD="my_password"
export MAILCHIMP_API_KEY="my mail_chimp_api_key"
export MAILCHIMP_LIST_ID="my mail_chimp_list_id"
export OWNER_EMAIL="my_email@gmail.com"
但它的应用无法以某种方式访问这些变量。
我偶然发现并在终端中输入了以下命令
> env
它列出了你电脑环境中的所有环境变量。 (我认为)
无论如何,我看到了上面我设置的变量,这意味着我的变量设置正确,只是应用程序无法访问这些变量。
经过更多的挖掘,我发现这个 post 说了一些关于重新启动终端的事情。
我试过了,成功了。
吸取的教训是,当我改变环境变量时,我应该重新启动我的终端。
我希望这对其他人有帮助。
我正在关注 Daniel Kehoe 在 Rails 一书中的学习 Ruby,当我尝试发送邮件时,出现以下错误。
ArgumentError at /contacts An SMTP To address is required to send a message. Set the message smtp_envelope_to, to, cc, or bcc address.
更好的错误 gem 指向联系人控制器中的 UserMailer.contact_email(@contact).deliver
。
我做了一些研究,在出现错误之前,我按照书中关于在我的 .bash_profile 文件中设置环境变量的说明进行了操作。
非常感谢任何帮助。
更新
根据回复,谢谢。我已经设置了邮件 (to: )
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"] %>
通过一些侦探工作,我偶然发现了一个只需要重新启动终端的解决方案
问题如上。早些时候,我在 .bash_profile 文件中填写了以下环境变量。
export GMAIL_USERNAME="my_email@gmail.com"
export GMAIL_PASSWORD="my_password"
export MAILCHIMP_API_KEY="my mail_chimp_api_key"
export MAILCHIMP_LIST_ID="my mail_chimp_list_id"
export OWNER_EMAIL="my_email@gmail.com"
但它的应用无法以某种方式访问这些变量。
我偶然发现并在终端中输入了以下命令
> env
它列出了你电脑环境中的所有环境变量。 (我认为)
无论如何,我看到了上面我设置的变量,这意味着我的变量设置正确,只是应用程序无法访问这些变量。
经过更多的挖掘,我发现这个 post 说了一些关于重新启动终端的事情。
我试过了,成功了。
吸取的教训是,当我改变环境变量时,我应该重新启动我的终端。
我希望这对其他人有帮助。