2013-04-18 12 views
6

私はRuby on Railsを使って簡単な非営利のアプリケーションを作成しています。私がGmailにメールを送信できるようにするために、以下の設定を設定する必要があります。アクションメーラーを構成するには(ドメインを登録する必要がありますか?)

Depot::Application.configure do 

config.action_mailer.delivery_method = :smtp 

config.action_mailer.smtp_settings = { 
    address:"smtp.gmail.com", 
    port:587, 
    domain:"domain.of.sender.net", 
    authentication: "plain", 
    user_name:"dave", 
    password:"secret", 
    enable_starttls_auto: true 
} 

end 

私はこのようなものと完全に新しいですし、まさに私が何をすべきか見当がつかない。

  1. Gmailアカウントを持っている場合、上記の設定を行うにはどうすればいいですか?私は ドメインを購入する必要がありますし、 上記の設定を使用するには、Googleから購入することができますか?
  2. 私のPCにメールサーバーを設定する方が良いですか?私はまだ thisチュートリアルを見ましたが、理解する限り、私はまだ ドメインを購入する必要があります。

また、それはhereと言われているとおり

電子メールサーバーの設定を適切に設定する必要があり、それぞれが異なったプログラムの数 を伴う困難なプロセスです。

これと私の貧弱なスキルのため、私は最も簡単な解決策を探しています。

私はレールアクションメーラtutorialを読んでおり、これらのパラメータがどのように使われているのか考えていますが、Gmailとメールサーバの周囲のものは全く明確ではありません。

+3

この前の質問をご覧ください。http://stackoverflow.com/questions/4929680/setting-up-a-gmail-account-to-work-with-actionmailer-in-rails-3 – fmendez

答えて

15

あなたのメーラーの設定は、/この構成の目的は、あなたがこれを設定するときにactionmailerを使用している場合、これらのSMTPオプションが使用されるということですdevelopmentproductionの両方で定義することができなければなりません。

メーラー

class UserMailer < ActionMailer::Base 
    default :from => DEFAULT_FROM 
    def registration_confirmation(user) 
    @user = user 
    @url = "http://portal.herokuapp.com/login" 
    mail(:to => user.email, :subject => "Registered") 

    end 
end 

だから何がここで起こるcreateアクションが使用されているとき、これが発火するということである

def create 
    @title = 'Create a user' 
    @user = User.new(params[:user]) 

    if @user.save 
     UserMailer.registration_confirmation(@user).deliver 
     redirect_to usermanagement_path 
     flash[:success] = 'Created successfully.' 
    else 
     @title = 'Create a user' 
     render 'new' 
    end 
    end 

コントローラー:あなたは、次のような単純なメーラーを持つことができますmailer UserMailer上記のUserMailerを見ると、ActionMailerをベースにしています。あなたが開発モードでのSMTP設定を定義したい場合は

config.action_mailer.default_url_options = { :host => 'portal.herokuapp.com' } 
    config.action_mailer.delivery_method = :smtp 
    config.action_mailer.smtp_settings = { 
     :address    => 'smtp.gmail.com', 
     :port     => 587, 
     :domain    => 'gmail.com', 
     :user_name   => '[email protected]', 
     :password    => 'pass', 
     :authentication  => 'login', 
     :enable_starttls_auto => true 
    } 

あなたが

を交換します:両方 config/environments/production.rbで定義されており、development.rbすることができ、以下に示すSMTPの設定を以下の

次のだろう

config.action_mailer.default_url_options = { :host => 'IP ADDRESS HERE:3000' } 

これと

config.action_mailer.default_url_options = { :host => 'portal.herokuapp.com' } 

必要がありますあなたを正しい方向にスタートさせるのに十分な説明があれば十分です。

2

上記の答えは私が

authentication: 'plain' 

にそれを変更したら、開発に私のために働いたと私の開発環境で

config.action_mailer.raise_delivery_errors = true 

が含まれています。

関連する問題