ruby on rails使用gmail的smtp發送郵件

來源:互聯網
上載者:User

標籤:

參考至http://guides.rubyonrails.org/action_mailer_basics.html

  1. 在gmail賬戶的安全裡先開啟兩步驗證(連結:https://myaccount.google.com/security),在產生一個應用專用密碼,再後面需要使用。
  2. 在控制台下進入到rails項目的根目錄,執行rails generate mailer UserMailer
  3. 找到app/mailers/user_mailer.rb檔案,如:
  4. 在第三步裡,可以看到在UserMailer裡添加了send_email方法,接下來就需要建立對應的Mailer的視圖,在app/views/user_mailer檔案夾下(因為有些郵件用戶端不支援html,所以同時建立一個text文本,兩個一起發送),和方法名一致,當調用send_email,就會使用對應的視圖。UserMailer就是一個控制器,send_email就是action,send_email.html.erb和send_email.text.erb就是對應的視圖。
  5. send_email.html.erb內容
    send_email.text.erb的內容就是把send_email.html.erb裡的所有html標籤去掉,只留下文本,如:
  6. 現在controller#action view都有了,由於只是簡單測試,model就沒有加上,只需在action改成對應model的郵件或者其他的就可以了。
  7. 接下來在config/application.rb檔案中配置gmail的smtp伺服器,如(由於gmail需要FQ才能測試,所以在實際開發中,關於gmail的smtp伺服器的配置可以放在production.rb檔案中,在test.rb和development.rb檔案中用其他郵箱代替,我使用的是qq的smtp伺服器,只要的qq中開通smtp服務,並且獲得qq的用戶端的專用密碼)

    qq的smtp服務配置
  8. 最後一步,通過調用UserMailer.send_email.deliver_now就能發送郵件
    UserMailer.send_email.deliver_now

     

  9. 由於使用的gmail的smtp伺服器,測試需要FQ,所以本地也就沒法測試。但是本人部署到heroku上確實是可以成功發送郵件的。

ruby on rails使用gmail的smtp發送郵件

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.