LoginSignup
3
1

More than 3 years have passed since last update.

Sinatraからgmailを使ってメールを送信する

Last updated at Posted at 2017-12-02

この記事はLife is Tech ! Members Advent Calendar 2017の3日目の記事です。

今回の環境

  • Cloud9
  • Sinatra 1.4.7(?)

以上。

やりたいこと

  • 会員登録などの際に登録されたメールアドレスに確認メールを送信したい

実装!

以下のコードを追記する

Gemfile
gem 'ruby-gmail', '~> 0.3.1'
app.rb
require 'gmail'


def send_message(mail_address, mail_subject, mail_body)
  gmail = Gmail.new("<MailAddress>", "<Password>")

  message =
    gmail.generate_message do
      to mail_address
      subject mail_subject
      html_part do
        content_type "text/html; charset=UTF-8"
        body mail_body
      end
    end

  gmail.deliver(message)
  gmail.logout
end

使いたいところに以下のコードを挿入する
send_message(<EmailAddress>,<Subject>,<Body>)
※BodyはHTMLタグを使えます。


send_message("example@example.com","会員登録が成功しました","<p>会員登録ありがとうございます。</p>")

以下のコマンドを実行する

コマンド
$ bundle --without production

仕上げ

Googleは頭がいいので、怪しいアプリのアカウントへのログインを弾いてしまいます。これを回避するには、二段階認証を有効にし、アプリ固有のパスワードを設定する必要があります。

  • 使用するGmailのアカウントにログインしておく

  • google.comにアクセスし、右上のアカウント画像をクリック→「Googleアカウント」をクリック

  • 左側にある「セキュリティ」をクリック

  • ちょっと下に行き、「2段階認証プロセス」をクリック

  • パスワードを入力する

  • 携帯電話番号を入力する

  • 届いたコードを入力する

  • 「オンにする」をクリックする

  • 赤で囲まれたボタンを押す

  • 届いたコードを入力

  • 赤で囲まれたボタンを押す

  • アプリの名前を入力(適当でok)

  • アプリパスワードが生成されるので、「実装!」で実装したgmail = Gmail.new("<MailAddress>", "<Password>")のPasswordを変える

終わりに

意外と簡単だったww

明日も…まだ埋まってませんね。。。誰か入ってください!!!!

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1