rails3异步发邮件
生活随笔
收集整理的這篇文章主要介紹了
rails3异步发邮件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
actionmailer 3.0 結合ar_mailer_rails3 異步發送郵件
3 次投票jerry?分享于 3 個月 前,?0 條回復,?244 次瀏覽?Share|actionmailer 3.0 的用法有所改進,并結合ar_mailer_rails3做異步郵件的發送,是比較方便的一種選擇,把郵件都交給后臺任務來發送吧.
第一步當然是生成actionmailer的文件了:
$ rails g mailer notifier生成好必要的文件后,我們來看以下actionmailer3新的寫法:
class Notifier < ActionMailer::Basedefault :from => "from@example.com"def signup_notificationmail(:to => "friend@gmail.com", :subject => "New account information")endend然后在相應的view目錄下建一個signup_notification.html.erb文件.
開始安裝ar_mailer_rails3,在gemfile里加入
gem 'ar_mailer_rails3'運行:
$ bundle install完成后,就可以來創建臨時存儲郵件的表了:
$ rails g ar_mailer_rails3 emailinitializers目錄下會生成一個ar_mailer.rb的初始化文件,為了方便起見,我們可以把gmail的smtp配置信息寫在這里:
config_file = "#{Rails.root}/config/smtp_gmail.yml" raise "Sorry, you must have #{config_file}" unless File.exists?(config_file)config_options = YAML.load_file(config_file) ActionMailer::Base.smtp_settings = {:address => "smtp.gmail.com",:port => 587,:authentication => :plain,:enable_starttls_auto => true }.merge(config_options) # Configuration options override default options當然,我們首先要在config/目錄下創建一個smtp_gmail.yml的gmail用戶配置信息,如下:
--- :user_name: youremail@gmail.com:password: yourpaswordok,配置完成,接下來開啟兩個終端,一個開console,一個開development.log:
$ rails console $ tail -f log/development.log調用剛才寫的方法:
>> message = Notifier.signup_notification >> message.deliver日志中是否已經有相關信息了呢? 不急,ar_mailer_rails3 將郵件臨時存進了數據庫,接下來是啟動后臺任務的時候了:
$ ar_sendmail_rails3再看看log,你的郵件是否已經發送成功了呢?
總結
以上是生活随笔為你收集整理的rails3异步发邮件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何制定好的方案之四:执行力是决定因素
- 下一篇: 电脑无法启动故障的10种解决方法