Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
2
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

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

この記事は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

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
2
Help us understand the problem. What are the problem?