ActionMailer 寄發信件
首先使用終端機輸入指令rails g mailer Vote
,Rails會幫我們產生對應的mailer.rb
跟view/vote_mailer
打開VSCode
接著我們就打開rails server
連到網頁測試看看,可以當我們點擊Vote後卻出現錯誤的畫面。
因為它還是依循著MVC的架構在運行,所以mailer是相當於controller的角色,那我們就必須幫它新增一個對應的view的角色。
重新整理,再試一次。看起來是有正常運作。
不過我們可以到Rails Guide搜尋
把剛剛找到的那段貼到development
檔案中
但其實這樣做有風險,就是你自己的
e-mail會被別人看光光。
此時有一個收費的網站很方便 mailgun。註冊完後,進到Domains裡面找到SMTP伺服器
把上面這些對應的設定,複製貼上到VScode裡面的development.rb
檔案中。
設定好後,從新啟動rails server
這時候重新點選Vote
會發現網頁的標籤頁開始轉圈圈之後顯示Voted!!!
,接著我們打開自己的信箱發現有一封標題是hi的郵件
確實有收到了!!!但同時也發現一件事情,就是當我們點擊 vote 之後頁面要轉圈圈快5秒才成功。
假如今天我們有人比較沒有耐心一直連點 vote,會發生什麼事呢?
沒錯!!!就是系統會一直寄信一直寄信。所以下面一堂課程,我們要來透過「背景工作」解決這個情況。
參考來源:為你自己學 Ruby on Rails (https://railsbook.tw/)