2016-05-05 4 views
0

Gibt es trotzdem Action-Mailer zu verwenden, ohne das ungeschützte Gmail-Attribut zu aktivieren? Ich möchte mein E-Mail-Konto nicht der Welt zugänglich machen, indem ich die Option "unsicher" für meine Ruby on Rails-App aktiviere.Wie verwende ich Ruby on Rails 3.2 Action Mailer mit Google Mail, ohne unsichere Geräteattribute einzuschalten?

Gibt es eine Möglichkeit, den Benutzernamen und das Passwort für ein solches E-Mail-System einzugeben, ohne den Benutzernamen und die Passwörter direkt der Anwendungsumgebung der Entwicklungs-/Produktionsmodi zuzuweisen?

Wie ist das alles und brauche ich zusätzliche Informationen?

Bare daran, ich bin mit Ruby-on-Rails Version 3.2 und nicht 4.0

Antwort

0

können Sie dies als verwenden:

config.action_mailer.delivery_method = :smtp 
    config.action_mailer.smtp_settings = { 
    :authentication => :plain, 
    :address => "smtp.gamil.com", 
    :port => 587, 
    :domain => Rails.application.secrets.domain, 
    :user_name =>Rails.application.secrets.username, 
    :password => Rails.application.secrets.password 
    } 

schreiben in secret.yml:

development: 
    domain: <%= ENV Domain_you_want %>, 
    user_name: <%= ENV user_name_you_want %>, 
    password: <%= ENV password %> 
+0

Die 'secret.yml'-Konfiguration wurde [in Rails 4.1 hinzugefügt] (http://guides.rubyonrails.org/4_1_release_notes.html#config-secrets-yml), so dass dies unter Rails 3.2 nicht funktioniert. – BoraMa

0

Der Standard Um Ihre vertraulichen Informationen beim Konfigurieren von Rails zu schützen, verwenden Sie die Shell-Umgebungsvariablen. In der Konfigurationsdatei gegebenen Umgebung, verwenden Sie die ENV Hash die Shell-Umgebungsvariablen für den Zugriff auf:

# e.g. config/environment/production.rb 
config.action_mailer.smtp_settings = { 
    address: "smtp.gmail.com", 
    port: 587, 
    domain: "example.com", 
    authentication: "plain", 
    enable_starttls_auto: true, 
    user_name: ENV["GMAIL_USERNAME"], 
    password: ENV["GMAIL_PASSWORD"] 
} 

Dann haben Sie die env zu definieren. Variablen irgendwo. Dies kann in der ~/.bashrc Datei des Benutzers durchgeführt werden, unter denen Sie Rails läuft (die Datei wird anders sein, wenn Sie als bash andere Shell verwenden):

# ~/.bashrc 
export GMAIL_USERNAME="[email protected]" 
# etc... 

dann auf die Konsole erneut anmelden und versuchen, Rails starten und es sollte die richtigen Informationen aus den Shell-Variablen erhalten. Werfen Sie einen Blick auf this guide für weitere Informationen. Siehe auch die Rails guides für alle Mail-Konfigurationsoptionen.