詳解Ruby on Rails中的mailer相關使用_ruby專題

來源:互聯網
上載者:User


    把 mails 命名為 SomethingMailer。 沒有 Mailer 字根的話,不能立即顯現哪個是一個 Mailer,以及哪個視圖與它有關。
    提供 HTML 與純文字視圖模版。

    在你的開發環境啟用信件失敗發送錯誤。這些錯誤預設是被停用的。

 # config/environments/development.rb config.action_mailer.raise_delivery_errors = true

    在開發模式使用 smtp.gmail.com 設定 SMTP 伺服器(當然了,除非你自己有本地 SMTP 伺服器)。

 

 # config/environments/development.rb config.action_mailer.smtp_settings = {  address: 'smtp.gmail.com',  # 更多設定 }

    提供預設的配置給主機名稱。

 # config/environments/development.rb config.action_mailer.default_url_options = {host: "#{local_ip}:3000"} # config/environments/production.rb config.action_mailer.default_url_options = {host: 'your_site.com'} # 在你的 mailer 類 default_url_options[:host] = 'your_site.com'

    如果你需要在你的網站使用一個 email 鏈結,總是使用 _url 方法,而不是 _path 方法。 _url 方法包含了主機名稱,而 _path 方法沒有。

 # 錯誤 You can always find more info about this course = link_to 'here', url_for(course_path(@course)) # 正確 You can always find more info about this course = link_to 'here', url_for(course_url(@course))

    正確地顯示寄與收件者地址的格式。使用下列格式:

 # 在你的 mailer 類別 default from: 'Your Name <info@your_site.com>'

    確定測試環境的 email 發送方法設定為 test :

 # config/environments/test.rb config.action_mailer.delivery_method = :test

    開發與生產環境的發送方法應為 smtp :

 # config/environments/development.rb, config/environments/production.rb config.action_mailer.delivery_method = :smtp

    當發送 HTML email 時,所有樣式應為行內樣式,由於某些使用者有關於外部樣式的問題。某種程度上這使得更難管理及造成代碼重用。有兩個相似的 gem 可以轉換樣式,以及將它們放在對應的 html 標籤裡: premailer-rails3 和roadie。

    應避免頁面產生響應時寄送 email。若多個 email 寄送時,造成了頁面載入延遲,以及請求可能逾時。使用 delayed_job gem 的協助來克服在背景處理寄送 email 的問題。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.