Slide 1

Slide 1 text

Javaとメールで遊んでみた話 2016/11/21 JJUGナイトセミナー

Slide 2

Slide 2 text

自己紹介 菊田 洋一 ・営業基幹系システムの受託開発 ・Challenge Java EE ! http://kikutaro777.hatenablog.com/ ・乃木坂46大好き @kikutaro_ Yoichi Kikuta

Slide 3

Slide 3 text

自己紹介 菊田 洋一 ・営業基幹系システムの受託開発 ・Challenge Java EE ! http://kikutaro777.hatenablog.com/ ・乃木坂46大好き @kikutaro_ Yoichi Kikuta 10月から クラウドメール配信サービスの SendGridチームにJoin!

Slide 4

Slide 4 text

Javaとメール?

Slide 5

Slide 5 text

みんな大好きJavaMail!

Slide 6

Slide 6 text

今日は話しません!

Slide 7

Slide 7 text

メールあれこれ Join後、SendGridエバンジェリストとの会話

Slide 8

Slide 8 text

メールあれこれ Join後、SendGridエバンジェリストとの会話 新しいコミュニケーションツールが増えて メールは古いとも言われますが サインアップにメールは必須だったりしますよね

Slide 9

Slide 9 text

メールあれこれ Join後、SendGridエバンジェリストとの会話 新しいコミュニケーションツールが増えて メールは古いとも言われますが サインアップにメールは必須だったりしますよね た、たしかに…

Slide 10

Slide 10 text

メールあれこれ Join後、SendGridエバンジェリストとの会話 新しいコミュニケーションツールが増えて メールは古いとも言われますが サインアップにメールは必須だったりしますよね た、たしかに… メールを確実に届けるのって 難しいんですよ

Slide 11

Slide 11 text

メールあれこれ Join後、SendGridエバンジェリストとの会話 新しいコミュニケーションツールが増えて メールは古いとも言われますが サインアップにメールは必須だったりしますよね た、たしかに… メールを確実に届けるのって 難しいんですよ そうなの…?え、SPF? DKIM? レピュテーション?? ひょえー

Slide 12

Slide 12 text

メールの世界、奥深っ

Slide 13

Slide 13 text

でも如何せんメールって ちょっと地味(´・ω・`)?

Slide 14

Slide 14 text

否、意外と色々できる!

Slide 15

Slide 15 text

Javaとメールでちょっと遊んでみる メールって感情が伝わりにくいから コミュニケーションの齟齬が起きやすい 最近、人工知能(AI)が盛り上がってる 人工知能によるメール文面の感情判定サービス

Slide 16

Slide 16 text

Demo

Slide 17

Slide 17 text

仕組み Sentiment analysis Microsoft Flow Inbound Parse Webhook 受信メールを指定URLへPOST メールの文章をAPIへ 解析結果のsentiment受信 グラフ生成 Event Webhook 送信状況を指定URLへPOST APIによるメール送信 メール送信

Slide 18

Slide 18 text

Microsoft Cognitive Services Microsoftが提供しているインテリジェンスAPIサービス

Slide 19

Slide 19 text

Microsoft Cognitive Services Microsoftが提供しているインテリジェンスAPIサービス 視覚(Vision) Computer Vision API Content Moderator Emotion API Face API Video API 音声(Speech) Bing Speech API Custom Recognition Intelligent Service (CRIS) Speaker Recognition 知識(Knowledge) Academic Knowledge API Entity Linking Intelligence Service Knowledge Exploration Service Recommendations API 言語(Language) Bing Spell Check API Language Understanding Intelligent Service(LUIS) Linguistic Analysis API Text Analytics API Translator API Web Language Model API 検索(Search) Bing Autosuggest API Bing Image Search API Bing News Search API Bing Video Search API Bing Web Search API REST API / 一部SDK

Slide 20

Slide 20 text

Microsoft Cognitive Services Text Analytics API…大きく4つの機能 Sentiment analysis Key phrase extraction Sentiment analysis 文章のネガティブ/ポジティブ具合の判定 Topic detection 重要なフレーズを検出 言語を判定 (120カ国語) トピックの検出

Slide 21

Slide 21 text

plotly データ可視化のプラットフォーム ・JavaScript ・Python ・Node.js ・Perl REST APIあり (v1とv2) ・Ruby ・Go ・F# ・Scala https://plot.ly/

Slide 22

Slide 22 text

Text Analytics APIもplotlyも Javaのライブラリはない…(; ・`д・´)

Slide 23

Slide 23 text

JavaのREST Client たくさんライブラリありますが、皆さん何使ってますか…? ・HttpClient ・RESTEasy ・Jersey Client ・Apache CXF JavaでのHttpClientサンプル – CLOVER http://d.hatena.ne.jp/Kazuhira/20131026/1382796711 JavaでのHttpClientサンプル その2 – CLOVER http://d.hatena.ne.jp/Kazuhira/20141115/1416054916 OkHttpを試す– CLOVER http://d.hatena.ne.jp/Kazuhira/20160227/1456563273 ・Async Http Client ・Unirest for Java ・OkHttp ・Google HTTP Client Library for Java …etc 色々触ってるブログ発見

Slide 24

Slide 24 text

Web APIでメール送信可能 (以下、v3のREST API利用例) ・PHP ・Ruby ・Python ・Node.js ・Perl ・Go ・C# ・Java ・COBOL 豊富なライブラリ https://github.com/sendgrid SendGridを利用したメール送信 curl --request POST -url https://api.sendgrid.com/v3/mail/send --header 'Authorization: Bearer API_KEY‘ --header 'Content-Type: application/json' --data '{"personalizations": [{ "to": [{"email": "[email protected]"}]}], "from": {"email": "[email protected]"}, “subject”: “Title”, "content": [{"type": "text/plain", "value": “Hello!"}]}'

Slide 25

Slide 25 text

SendGridの面白い機能 processed delivered open HTTP POST HTTP POST メール受信 メール送信時の各イベントを 指定先へPOSTする メールを受信して、メール情報を 指定先へPOSTする Event Webhook Inbound Parse Webhook 利用例:状態確認、ログ蓄積 利用例:空メール、問合せの受付

Slide 26

Slide 26 text

マーケティングメール Email Infrastructure as a Service Scalability Deliverability Reliability 月間270億通 Domain Whitelabel 標準機能 Dashboard & Stats バウンスリストの作成 配信停止管理 開封などトラッキング テンプレート 独自ドメインの利用 SPF/DKIM 詳しくは ドキュメント ブログ 参照! https://sendgrid.kke.co.jp/ メールマガジンなどの送付 もうすぐ新しいMarketing Campaigns リリース予定!

Slide 27

Slide 27 text

http://qiita.com/advent-calendar/2016/sendgrid SendGrid Advent Calendar参加募集中!

Slide 28

Slide 28 text

http://qiita.com/advent-calendar/2016/sendgrid Java系も書きましょう! Java http://qiita.com/advent-calendar/2016/java JavaFX http://qiita.com/advent-calendar/2016/javafx Java EE http://qiita.com/advent-calendar/2016/javaee Java Puzzlers http://qiita.com/advent- calendar/2016/java_puzzlers SendGrid Advent Calendar参加募集中!

Slide 29

Slide 29 text

Javaとメールで遊んでみた話 2016/11/21 JJUGナイトセミナー Happy Sending !