2013-04-18 66 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帳戶?我是否需要購買域名 並且可以從谷歌購買,以便使用上面的設置 ?
  2. 在我的電腦上設置郵件服務器更好嗎?我看雖然 this教程,但據我所知,我仍然需要購買一個 域。

而且,據說here

設置電子郵件服務器涉及不同的程序,每個程序都需要進行適當配置的數量 一個艱難的過程。

因爲這個和我的技能差我正在尋找最簡單的解決方案。

我已閱讀rails動作郵件編輯器tutorial並瞭解這些參數的用途,但Gmail和郵件服務器周圍的事情根本不清楚。

+3

你可能想看看這個前面的問題:http://stackoverflow.com/questions/4929680/setting-up-a-gmail-account-to-work-with-actionmailer-in-rails-3 – fmendez

回答

15

您的郵件的配置應該/可以在這兩個developmentproduction定義這個配置的目的是,當你設置此,當你使用這些actionmailer SMTP選項將被使用。你可以有一個簡單的郵件類似如下:

梅勒

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 

控制器

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 

那麼這裏發生的是,當正在使用create動作此打響郵件程序UserMailer查看上面的UserMailer,它使用ActionMailer作爲基礎。下面所示的SMTP設置如下同時可在config/environments/production.rb進行定義和development.rb

您將有以下:

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 
    } 

如果要定義發展方式SMTP設置您將要替換

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

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

這應該做一個足夠透徹的解釋,讓你朝正確的方向開始。

2

以上回答爲我工作在開發中,一旦我把它改成

authentication: 'plain' 

,其中包括

config.action_mailer.raise_delivery_errors = true 
在我的開發環境