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

外部サービス連携で学んだこと 〜メール編〜

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.
Avatar for otsuka otsuka
November 29, 2023

外部サービス連携で学んだこと 〜メール編〜

Avatar for otsuka

otsuka

November 29, 2023
Tweet

Other Decks in Technology

Transcript

  1. © Magic Moment 2021 自己紹介とサービス概要 3 大塚 将平 (Shohei Otsuka)

    株式会社Magic Momentでプロダクトと外部サービ スとの連携部分を主に担当するバックエンドエンジ ニアです。 趣味は飲み歩き(最近は浅草で飲むのが好き)
  2. © Magic Moment 2021 自己紹介とサービス概要 4 営業組織の出力を最大化する Magic Moment Playbook

    営業活動量を圧倒的に増やし、 全ての営業活動から優れた顧客体験を生み出す セールスオペレーションクラウド 最適な営業オペレーションを組織に実装し 大量行動が可能になる仕組みを提供する SaaS を提供
  3. © Magic Moment 2021 思い出 〜返信〜 9 Mail_A Mail_B Mail_C

    Message-ID: <Mail_A> Message-ID: <Mail_B> In-Reply-To: <Mail_A> References: <Mail_A> Message-ID: <Mail_C> In-Reply-To: <Mail_B> References: <Mail_A><Mail_B> 返信 返信
  4. © Magic Moment 2021 思い出 〜返信〜 10 • メールの件名が同じである •

    Referencesヘッダーが、スレッド内 の以前のMail IDを参照している、また は同じMail IDを一貫して参照している Gmail公式によると...
  5. © Magic Moment 2021 思い出 〜返信〜 12 • メールサーバを開発しているわけではない •

    Gmail, Outlookと連携しているだけ • API経由で返信情報を取得できるはず
  6. © Magic Moment 2021 思い出 〜エラーハンドリング〜 16 エラーハンドリング難しい • 一時的なエラーは再試行したい

    ◦ 429エラー, 5xx系エラー • 回避可能なエラーは回避したい ◦ 返信対象のメールを削除した → 新規メールとして送信 • 回避不可能なエラーは連携解除したい ◦ ユーザーが削除された HTTP Status Codeだけで単純に判断できない
  7. © Magic Moment 2021 思い出 〜エラーハンドリング〜 17 前回の学びからドキュメントをちゃんと読んだ { "error":

    { "code": "badRequest", "message": "Uploaded fragment overlaps with existing data.", "innerError": { "code": "invalidRange", "request-id": "request-id", "date": "date-time" } } }
  8. © Magic Moment 2021 思い出 〜エラーハンドリング〜 18 知らないエラーコードが返ってきた • MailboxNotEnabledForRESTAPI

    • SyncStateNotFound • ErrorInvalidIdMalformed • etc… 一個ずつググるとどんなエラーか調べることはできるが、一覧で見れるページがない!
  9. © Magic Moment 2021 We are hiring! © Magic Moment

    2021 23 https://www.magicmoment.jp/recruit