![](/img/trans.png)
[英]ArgumentError (An SMTP To address is required to send a message - Rails 4
[英]Error “An SMTP To address is required to send a message” on Learn-Rails Tutorial
我一直在學習Ruby on Rails教程的“發送郵件”部分得到錯誤。
我試圖在我的本地計算機上克隆https://github.com/RailsApps/learn-rails.git但問題仍然存在。
以下是我的代碼:
user_mailer.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
development.rb
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
secrets.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"] %>
我還確保在.bashrc文件中正確設置了環境變量。
任何幫助將不勝感激,並提前感謝您!
對於開發,您可以使用開信刀寶石。 發送電子郵件后,它將自動在默認瀏覽器中打開。
將以下內容添加到Gemfile的開發部分。
gem 'letter_opener'
我也有同樣的問題。 我嘗試了從禁用兩步驗證(Google)到在secrets.yml中硬編碼我的憑據,但沒有成功。
我使用了我的outlook.com憑據,它運行得很好。
注意:這需要更改development.rb
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'
}
make it true config.action_mailer.raise_delivery_errors = true
它會告訴是否發生任何錯誤。
也嘗試端口25
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.