Ruby on rails “错误”;发送邮件时需要SMTP收件人地址";关于学习Rails教程
我在教程的“发送邮件”部分不断遇到错误 我已尝试在本地计算机上克隆,但问题仍然存在 下面是我的代码: user\u mailer.rbRuby on rails “错误”;发送邮件时需要SMTP收件人地址";关于学习Rails教程,ruby-on-rails,railsapps,learn-ruby-on-rails,Ruby On Rails,Railsapps,Learn Ruby On Rails,我在教程的“发送邮件”部分不断遇到错误 我已尝试在本地计算机上克隆,但问题仍然存在 下面是我的代码: user\u mailer.rb class UserMailer < ApplicationMailer default from: "do-not-reply@example.com" def contact_email(contact) @contact = contact mail(to: Rails.application.secrets.owner_e
class UserMailer < ApplicationMailer
default from: "do-not-reply@example.com"
def contact_email(contact)
@contact = contact
mail(to: Rails.application.secrets.owner_email, from: @contact.email, :subject => "Website Contact")
end
end
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
}
# ActionMailer Config
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
config.action_mailer.delivery_method = :smtp
config.action_mailer.raise_delivery_errors = true
# Send email in development mode?
config.action_mailer.perform_deliveries = true
config.action_mailer.smtp_settings = {
address : "smtp.live.com"
# everything else is identical.
}
秘密。yml
development:
email_provider_username: <%= ENV["GMAIL_USERNAME"] %>
email_provider_password: <%= ENV["GMAIL_PASSWORD"] %>
mailchimp_api_key: <%= ENV["MAILCHIMP_API_KEY"] %>
mailchimp_list_id: <%= ENV["MAILCHIMP_LIST_ID"] %>
domain_name: example.com
owner_email: <%= ENV["OWNER_EMAIL"] %>
开发:
电子邮件\提供商\用户名:
电子邮件\提供商\密码:
mailchimp_api_密钥:
mailchimp\u列表\u id:
域名:example.com
业主(电邮:
我还确保在.bashrc文件上正确设置了环境变量
我们将非常感谢您的帮助,并提前向您表示感谢 对于开发,您可以使用开信器gem。发送电子邮件后,它将自动在默认浏览器中打开 将以下内容添加到文件的“开发”部分
gem 'letter_opener'
我也有同样的问题。我尝试了一切,从禁用两步验证(Google)到在secrets.yml中硬编码我的凭证,都没有成功 我使用了我的outlook.com凭据,它工作得非常好 注:这需要对development.rb进行更改
class UserMailer < ApplicationMailer
default from: "do-not-reply@example.com"
def contact_email(contact)
@contact = contact
mail(to: Rails.application.secrets.owner_email, from: @contact.email, :subject => "Website Contact")
end
end
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
}
# ActionMailer Config
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
config.action_mailer.delivery_method = :smtp
config.action_mailer.raise_delivery_errors = true
# Send email in development mode?
config.action_mailer.perform_deliveries = true
config.action_mailer.smtp_settings = {
address : "smtp.live.com"
# everything else is identical.
}
设置为gmail
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
:address => "smtp.gmail.com",
:domain => "gmail.com",
:port => 587,
:user_name => "username",
:password => "password",
:authentication => :plain,
:enable_starttls_auto => true,
:openssl_verify_mode => 'none'
}
让它成为现实
config.action\u mailer.raise\u delivery\u errors=true
它将告诉您是否发生任何错误
另外,请尝试将您的Gmail凭证硬编码到secrets.yml文件中。不要将其签入git,只需查看ENV变量是否存在任何问题。嗨,丹尼尔,我已经尝试将我的Gmail凭据硬编码到secrets.yml或user.mailer.rb文件中,问题仍然存在。看起来域名将成为example.com或nilThank zach!我试过了,但同样的错误仍然存在。你是在之后捆绑安装的吗?我想谷歌最近改变了Gmail API?