SlideShare a Scribd company logo
1 of 32
Download to read offline
BowNowで分かる
メール機能を実装する際の多様なアプローチ
BowNow 開発チーム: 佐古田雄二郎
名前:佐古田雄二郎
所属:Cloud Engineer Geek Headquarters Tokyo
経歴: Rubyでの開発経験が 2年半程度
趣味:サッカー・将棋(最近始めました)
自己紹介
業務:BowNow開発
※どなたか対局お願いします
「BowNowで分かる メール機能を実装する際の多様なアプローチ」
今回の内容
・Webシステムにおいてメール機能は今や不可欠である
今回の内容にした理由
・BowNow(MAツール)はメール機能と関わりが深い
・メール機能についての概要が少しだけ分かる
今回の目標
・メール機能の実装方法について少しだけ分かる
※詳細なロジック処理等は今回の内容に含まれてないです
(その分内容がフワフワしてますがご容赦ください)
目次
1.基本的なメール処理の流れ
2.メールの送り主は必ずしも人とは限らない
3.数十万件のメールを一斉送信するためにとった実装方法
4.まとめ
基本的なメール処理の流れ
1
7
メール処理の流れ
送信!
・Gmail
・OutLook
・Yahoo!メール
・etc…
メールソフトを使用 同様にメールソフトを使用
自分
相手
※イメージ図
誰かにメールを送信するとき、、
裏側ではどういった処理を行っているのか?
相手のサーバー
DNSサーバー
相手メールサーバーの
IPアドレスを確認
送信!
SMTP
SMTP
POP/IMAP
自分のサーバー
SMTP:メール送信のための通信規約
POP/IMAP:メール受信のための通信規約
メール処理の流れ
自分 相手
基本的なメール処理の流れが分かれば OKです
メールの送り主は必ずしも人とは限らない
2
・アカウント登録が完了したとき
人以外から送られてくるメール
・パスワードを再設定するとき
・商品の購入が完了したとき
・お店の予約をしたとき
・ETC…
いずれも利用している
Webシステムから通知メールが届く
画面で登録 アカウント登録通知メール
BowNowのアカウント登録時を例にあげると、、
アカウント登録完了後通知メールが届く
どのように通知メールを送っているのか
・メール送信先の設定
・自分のメールサーバーの設定
・通知メール本文の作成
・メールの送信
通知メールの送信 図解
アカウントの登録完了!
内部処理で次のことを行う
内部処理(Ruby)
・メールソフトに変わってメール送信の処理を行います
・その後は基本的に同じ流れです
内部処理(Ruby)に関して少し説明
通知メール本文の作成
実装イメージ
※BowNowのソースコードではありません
メール送信のための各種設定
・メール機能関連のconfigを設定
・アカウント情報を設定したり
・メールサーバー情報を設定
・通知用メールをあらかじめ作成しておく
・通知の種類によってだし分け
・.text、.htmlで作成する
実装イメージ
※BowNowのソースコードではありません
メールの送信
・アカウントコントローラーのアカウントを登録するタイミングで実行
・RailsのActionMailerに搭載されてるdeliverメソッドを使用
・ActionMailerを継承することでdeliverメソッドが使用可能に
Ruby以外の場合
PHP
Python
JavaScript
3
21
数万件のメール送信をどのように実装するか
大量の宛先にメールを一斉配信したいとき
メール機能を実装する中で、
は実装方法に気を付けなければなりません
BowNowの一斉配信メール機能で解説
数十万件のリード(顧客情報)
前提として一ライセンスあたり、、
が存在することもある
BowNowの一斉配信メール機能で解説
数十万件のリード(顧客情報)
メールを作成
大量送信!
大事なことは、、、
「大量のメールを確実に安定して届けられる」
意外と難しく懸念すべき点が色々あります
ただ、「大量のメールを確実に安定して届ける」ことは
大量メール配信の懸念事項
・性能の問題(処理の速さ)
・迷惑メール対策
・セキュリティ対策
・メール状態の追跡
BowNowではこれらの課題を、、、(次ページ)
ざっとあげるだけでも以下のような懸念事項があります
メール配信システムと API連携する
ことで解決しています。
メール配信システムの良いところ
・高い性能でメール配信が高速で行える
・メールを確実に届けるための技術がある
・メール到達後の状態を追跡できる
・セキュリティ対策がしっかりしている
メール配信システムサーバー
・APIでメール配信システムにリクエスト
メール配信システムとのAPI連携 図解
一斉配信メール配信!
内部処理で次のことを行う
内部処理(Ruby)
メール配信システム
API連携
メールが到達
まとめ
4
30
振り返ってみて、、、
メール機能の実装方法を分ける意味が分かる
・メール機能の全体的な処理の流れが分かる
・メール機能の実装について少し分かる
が少しでも頭に残っていたら幸いです
END

More Related Content

Similar to BowNowで分かる メール機能を実装する際の多様なアプローチ.pdf

What's new in 4.0 of LibreOffice / LibreOffice 4.0の新機能
What's new in 4.0 of LibreOffice / LibreOffice 4.0の新機能What's new in 4.0 of LibreOffice / LibreOffice 4.0の新機能
What's new in 4.0 of LibreOffice / LibreOffice 4.0の新機能Naruhiko Ogasawara
 
Microsoft Team Foundation Service 入門
Microsoft Team Foundation Service 入門Microsoft Team Foundation Service 入門
Microsoft Team Foundation Service 入門You&I
 
知ってるようで知らないWeb基礎セミナー
知ってるようで知らないWeb基礎セミナー知ってるようで知らないWeb基礎セミナー
知ってるようで知らないWeb基礎セミナーukkyo
 
AlphabetBootCamp 第1回勉強スライド
AlphabetBootCamp 第1回勉強スライドAlphabetBootCamp 第1回勉強スライド
AlphabetBootCamp 第1回勉強スライドSawada Makoto
 
Spring Boot + Doma + AngularJSで作るERP (LINE Fukuoka Meetup版)
Spring Boot + Doma + AngularJSで作るERP (LINE Fukuoka Meetup版)Spring Boot + Doma + AngularJSで作るERP (LINE Fukuoka Meetup版)
Spring Boot + Doma + AngularJSで作るERP (LINE Fukuoka Meetup版)学 松崎
 
複数人でSwift開発を行うには
複数人でSwift開発を行うには複数人でSwift開発を行うには
複数人でSwift開発を行うにはYuya Fujiwara
 

Similar to BowNowで分かる メール機能を実装する際の多様なアプローチ.pdf (6)

What's new in 4.0 of LibreOffice / LibreOffice 4.0の新機能
What's new in 4.0 of LibreOffice / LibreOffice 4.0の新機能What's new in 4.0 of LibreOffice / LibreOffice 4.0の新機能
What's new in 4.0 of LibreOffice / LibreOffice 4.0の新機能
 
Microsoft Team Foundation Service 入門
Microsoft Team Foundation Service 入門Microsoft Team Foundation Service 入門
Microsoft Team Foundation Service 入門
 
知ってるようで知らないWeb基礎セミナー
知ってるようで知らないWeb基礎セミナー知ってるようで知らないWeb基礎セミナー
知ってるようで知らないWeb基礎セミナー
 
AlphabetBootCamp 第1回勉強スライド
AlphabetBootCamp 第1回勉強スライドAlphabetBootCamp 第1回勉強スライド
AlphabetBootCamp 第1回勉強スライド
 
Spring Boot + Doma + AngularJSで作るERP (LINE Fukuoka Meetup版)
Spring Boot + Doma + AngularJSで作るERP (LINE Fukuoka Meetup版)Spring Boot + Doma + AngularJSで作るERP (LINE Fukuoka Meetup版)
Spring Boot + Doma + AngularJSで作るERP (LINE Fukuoka Meetup版)
 
複数人でSwift開発を行うには
複数人でSwift開発を行うには複数人でSwift開発を行うには
複数人でSwift開発を行うには
 

BowNowで分かる メール機能を実装する際の多様なアプローチ.pdf