Sinatraからgmailを使ってメールを送信する
この記事はLife is Tech ! Members Advent Calendar 2017の3日目の記事です。
今回の環境
- Cloud9
- Sinatra 1.4.7(?)
以上。
やりたいこと
- 会員登録などの際に登録されたメールアドレスに確認メールを送信したい
実装!
以下のコードを追記する
gem 'ruby-gmail', '~> 0.3.1'
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("[email protected]","会員登録が成功しました","<p>会員登録ありがとうございます。</p>")
以下のコマンドを実行する
$ bundle --without production
仕上げ
Googleは頭がいいので、怪しいアプリのアカウントへのログインを弾いてしまいます。これを回避するには、二段階認証を有効にし、アプリ固有のパスワードを設定する必要があります。
使用するGmailのアカウントにログインしておく
google.comにアクセスし、右上のアカウント画像をクリック→「Googleアカウント」をクリック
左側にある「セキュリティ」をクリック
アプリパスワードが生成されるので、「実装!」で実装した
gmail = Gmail.new("<MailAddress>", "<Password>")
のPasswordを変える
終わりに
意外と簡単だったww
明日も…まだ埋まってませんね。。。誰か入ってください!!!!
Author And Source
この問題について(Sinatraからgmailを使ってメールを送信する), 我々は、より多くの情報をここで見つけました https://qiita.com/maru2213/items/c8180aae1ea62a4d6b2c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .