ちょっとしたテストや、メールサーバーがない環境でメール送信をしたい場合、Gmailの利用が非常に便利です。
備忘録を兼ね、RubyでGmailライブラリを使用したメールの送信方法を紹介します。
※ここで紹介する例は、GmailのSMTPサーバーを利用した標準mailライブラリでの送信方法ではなく、Gmailそのものを使用する例です。
1 |
gem install gmail |
1 2 3 4 5 6 7 8 9 10 11 |
require 'gmail' gmail = Gmail.connect("Gmailアドレス","パスワード") #Gmailに接続 gmail.deliver do to "送信先アドレス" subject "件名" text_part do body "本文" end end gmail.logout #切断 |
上記が送信に必要なスクリプトの全てになりますが、これだけでは送信できません。
Ruby側で何もエラーが出ないので原因究明に手こずりましたが、解決方法はGoogleアカウントの設定にありました。
まず、Googleアカウント設定の『2段階認証プロセス』の項目を確認します。
◆2段階認証プロセスがオフの場合
◆2段階認証プロセスがオンの場合
アプリパスワードを生成します。
生成されたアプリパスワードをGmail.connectのパスワードにすることで二段階認証を通過してメールの送信が可能になります。
ちなみに、二段階認証プロセスを有効にするには、携帯電話のメールアドレスが必要となります。
また、二段階認証プロセス有効後は、デバイスごとにパスワードの認証が求められ、都度、携帯電話に送られてくるパスワードを入力する必要があるため、運用・管理におけるアカウントの共有化が難しくなります。
Gmail使用のメリット
・自前のメールサーバーを必要としない
・文字化け対策が不要
デメリット
・セキュリティが不安
・Googleの監視下にある
セキュリティ面や運用性を考えると用途が限られてきますが、ちょっとしたテストなんかには十分使えるんじゃないでしょうか。