從生產環境中發出郵件時,我得到一個錯誤,特別是:Rails的郵件的Net :: SMTPAuthenticationError(530-5.5.1需要身份驗證)與Gmail使用ENV [用戶名]和ENV [密碼]
Net::SMTPAuthenticationError (530-5.5.1 Authentication Required)
在我的本地機器和發展環境我使用ENV[GMAIL_USERNAME]
和ENV[GMAIL_PASSWORD]
聲明密碼,它的正常工作,在那裏宣佈ENV存儲在我的.bash_profile
# Development Environment for Action Mailer config
config.action_mailer.default_url_options = { host: '0.0.0.0:3000' }
config.action_mailer.perform_deliveries = true
config.action_mailer.default charset: 'utf-8'
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
address: 'smtp.gmail.com',
port: 587,
domain: 'mydomain.com',
authentication: "plain",
enable_starttls_auto: true,
user_name: ENV["GMAIL_USERNAME"],
password: ENV["GMAIL_PASSWORD"]
}
# Production Environment for Action Mailer config
config.action_mailer.default_url_options = { host: 'mydomain.com' }
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = false
config.action_mailer.default charset: 'utf-8'
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
address: "smtp.gmail.com",
port: 587,
domain: "mydomain.com",
authentication: "plain",
enable_starttls_auto: true,
user_name: ENV["GMAIL_USERNAME"],
password: ENV["GMAIL_PASSWORD"]
}
不幸的是,在生產我得到一個埃羅r發送郵件時。但是,如果我在environments/production.rb
中對用戶名和密碼進行了硬編碼,它就可以工作。該ENV["GMAIL_USERNAME"]
和`ENV [「GMAIL_PASSWORD」]被設置在.bash_profile文件:
export GMAIL_USERNAME="[email protected]"
export GMAIL_PASSWORD="mypassword"
我認爲這將是應用程序無法調用ENV["GMAIL_USERNAME"]
和ENV["GMAIL_PASSWORD"]
但是當我跳進鐵軌生產控制檯和puts ENV["GMAIL_USERNAME"]
它輸出正確的憑證。
我重新啓動了Apache並重新啓動了我的應用程序多次,但我很困惑接下來要做什麼。
任何幫助,非常感謝。
謝謝您的高級。
保佑你的心。它實際上只是點擊了Apache不會讀ENV集。 –