Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Javaとメールで遊んでみた話

kikutaro
November 21, 2016

 Javaとメールで遊んでみた話

【東京】 JJUG ナイト・セミナー「ビール片手にLT大会&感謝祭」 11/21(月)開催

kikutaro

November 21, 2016
Tweet

More Decks by kikutaro

Other Decks in Programming

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

  4. Javaとメール?

    View Slide

  5. みんな大好きJavaMail!

    View Slide

  6. 今日は話しません!

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  12. メールの世界、奥深っ

    View Slide

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

    View Slide

  14. 否、意外と色々できる!

    View Slide

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

    View Slide

  16. Demo

    View Slide

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

    View Slide

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

    View Slide

  19. 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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  23. 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
    色々触ってるブログ発見

    View Slide

  24. 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!"}]}'

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  28. 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参加募集中!

    View Slide

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

    View Slide