2013-12-11 73 views
0

我在delopment.rb它看起來像這樣無法發送電子郵件在Ruby on Rails的

Wiyo::Application.configure do 
    # Settings specified here will take precedence over those in config/application.rb. 

    # In the development environment your application's code is reloaded on 
    # every request. This slows down response time but is perfect for development 
    # since you don't have to restart the web server when you make code changes. 
    config.cache_classes = false 

    # Do not eager load code on boot. 
    config.eager_load = false 

    # Show full error reports and disable caching. 
    config.consider_all_requests_local  = true 
    config.action_controller.perform_caching = false 

    # Don't care if the mailer can't send. 
    config.action_mailer.raise_delivery_errors = true 

    # Print deprecation notices to the Rails logger. 
    config.active_support.deprecation = :log 

    # Raise an error on page load if there are pending migrations 
    config.active_record.migration_error = :page_load 

    # Debug mode disables concatenation and preprocessing of assets. 
    # This option may cause significant delays in view rendering with a large 
    # number of complex assets. 
    config.assets.debug = true 

    config.action_mailer.perform_deliveries = true 

    #config.action_mailer.delivery_method = :smtp 
    #config.action_mailer.smtp_settings = { :address => "localhost", :port => 1025 } 

    #config.action_mailer.default_url_options = { 
    #:host => "localhost:3000" 
    #} 


    config.action_mailer.delivery_method = :smtp 
    config.action_mailer.smtp_settings = { 
    :address => "smtp.gmail.com", 
    :port => 587, 
    :domain => 'gmail', 
    :user_name => "[email protected]", 
    :password => "********", 
    :authentication => 'plain', 
    :enable_starttls_auto => true 
    } 
end 

在預訂梅勒控制器具有的配置,我有

class BookingMailer < ActionMailer::Base 
    layout 'email' 

    default from: "[email protected]" 

    def test_email 
    mail(to: '[email protected]', subject: "test email from Avash Poudel") 
    end 
end 

我呼籲從另一個test_email控制器如

def about 
    BookingMailer.test_email.deliver 
    render:"about" 
end 

我被卡住了。如何發送電子郵件。如果郵件發送成功,如何顯示郵件?

+1

你會得到什麼錯誤?請檢查日誌。 – Zepplock

+0

在網站中沒有可見的錯誤,但是在日誌文件夾(development.txt)中有以下信息,然後在日誌中包含我的電子郵件模板中的所有html編碼 – atomaprchya

+0

From:[email protected] To:avashpdl @ yahoo.com Message-ID:<[email protected]> Subject:來自Avash的測試郵件Poudel Mime-Version:1.0 Content-Type:multipart/mixed; boundary =「 - == _ mimepart_52a7fdf7f1c7e_96c3d9a1d814398」; 字符集= UTF-8 內容傳送編碼:7位 ---- == _ mimepart_52a7fdf7f1c7e_96c3d9a1d814398 的Content-Type:text/html的; charset = UTF-8 Content-Transfer-Encoding:7bit – atomaprchya

回答

0

您缺少「default_url_options」,請看下面的配置。

設置郵件是非常直截了當的。下面是步驟,你需要流量:

創建梅勒

$軌生成郵件UserMailer

編輯梅勒

class UserMailer < ActionMailer::Base 
    default from: '[email protected]' 

    def welcome_email(user) 
    @user = user 
    @url = 'http://example.com/login' 
    mail(to: @user.email, subject: 'Welcome to My Awesome Site') 
    end 
end 

環境配置

請確保根據環境進行下面的配置。

config.action_mailer.default_url_options = { :host => 'localhost:3000' } 
config.action_mailer.delivery_method = :smtp 
config.action_mailer.perform_deliveries = true 
config.action_mailer.raise_delivery_errors = true 
config.action_mailer.default :charset => "utf-8" 

config.action_mailer.smtp_settings = { 
    :enable_starttls_auto => true, 
    :address => "smtp.gmail.com", 
    :port => 587, 
    :domain => "gmail.com", 
    :authentication => :login, 
    :user_name => '[email protected]', 
    :password => 'xxxxxxxxxx', 
} 
相關問題