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

SESからSendGridに変更したけど移行で問題が出た話

 SESからSendGridに変更したけど移行で問題が出た話

JAWS-UG朝会 #50
「SESからSendGridに変更したけど移行で問題が出た話
 〜メールアドレスに日本語が使える?〜」
の資料になります。
https://jawsug-asa.connpass.com/event/282615/

Takafumi Omuro

October 20, 2023
Tweet

More Decks by Takafumi Omuro

Other Decks in Technology

Transcript

  1. © Morisawa Inc. アジェンダ 1 • 自己紹介 • 株式会社モリサワと Morisawa

    Fonts の紹介 • Backend アーキテクチャの紹介と SendGrid 移行 • メールアドレスの RFC と国際化対応について • メールアドレスのバリデーション • まとめ
  2. © Morisawa Inc. 自己紹介 名前:小室 貴史 所属:株式会社モリサワ システム開発部門 シニアテックマネージャー 仕事:テックリード、

    インフラエンジニア 好きな Amazon Web Services サービス: CloudFormation 趣味:バイク 2 サーキットで YZF-R1 に跨る本人
  3. © Morisawa Inc. フォント販売方法も変革 物理媒体からクラウドへ 4 2005年 MORISAWA PASSPORT パッケージ

    サブスクリプション 2002年 OpenTypeフォント パッケージ 売り切り 2022年 Morisawa Fonts クラウド サブスクリプション
  4. © Morisawa Inc. Backend アーキテクチャ(SES 利用時代) 6 AWS Fargate で

    GraphQL サーバーを稼働 AWS Cloud ユーザー Amazon Route 53 Elastic Load Balancing AWS WAF Amazon Aurora Amazon DynamoDB Amazon CloudWatch Alarm Logs Amazon Simple Noti?cation Service (Amazon SNS) AWS Chatbot AWS CodeBuild AWS CodePipeline Amazon Elastic Container Registry (Amazon ECR) AWS Fargate Amazon SES Slack ※主要なサービスのみ記載しております
  5. © Morisawa Inc. Backend アーキテクチャ(SES 利用時代) 7 当初 Amazon SES

    でメールを送信 AWS Cloud ユーザー Amazon Route 53 Elastic Load Balancing AWS WAF Amazon Aurora Amazon DynamoDB Amazon CloudWatch Alarm Logs Amazon Simple Noti?cation Service (Amazon SNS) AWS Chatbot AWS CodeBuild AWS CodePipeline Amazon Elastic Container Registry (Amazon ECR) AWS Fargate Amazon SES Slack ※主要なサービスのみ記載しております
  6. © Morisawa Inc. Backend アーキテクチャ 8 その後、SendGrid へ移行しました AWS Cloud

    ユーザー ※主要なサービスのみ記載しております Amazon Route 53 Elastic Load Balancing AWS WAF Amazon Aurora Amazon DynamoDB Amazon CloudWatch Alarm Logs Amazon Simple Noti?cation Service (Amazon SNS) AWS Chatbot AWS CodeBuild AWS CodePipeline Amazon Elastic Container Registry (Amazon ECR) AWS Fargate Slack SendGrid
  7. © Morisawa Inc. Amazon SES のバウンス率が急上昇 〜Amazon SES を止めてしまった日〜 9

    SES を SendGrid に移行しました https://speakerdeck.com/tomuro/amazon-ses-nobaunsulu-gaji-shang-sheng-amazon-ses-wozhi-metesimatutari 3K View 超えて人気
  8. © Morisawa Inc. Backend アーキテクチャ 11 SendGrid では日本語メールアドレスが使えませんでした AWS Cloud

    ユーザー ※主要なサービスのみ記載しております Amazon Route 53 Elastic Load Balancing AWS WAF Amazon Aurora Amazon DynamoDB Amazon CloudWatch Alarm Logs Amazon Simple Noti?cation Service (Amazon SNS) AWS Chatbot AWS CodeBuild AWS CodePipeline Amazon Elastic Container Registry (Amazon ECR) AWS Fargate Slack SendGrid
  9. © Morisawa Inc. メールアドレスの基本となる RFC • RFC5321 Simple Mail Transfer

    Protocol(SMTP) • RFC5322 Internet Message Format • メールアドレスに使用できる文字が定義されている • 使える文字は ASCII が基本 • RFC は読むのが大変なので Wikipedia を見てみると… 12 RFC5321 と RFC5322
  10. © Morisawa Inc. メールアドレスの国際化対応 RFC • RFC6531 SMTP Extension for

    Internationalized Email • RFC6532 Internationalized Email Headers • RFC5321 と RFC5322 の国際化対応がされている • ざっくり言うと UTF-8 がサポートされた 15 RFC6531 と RFC6532
  11. © Morisawa Inc. まとめ 20 • メールアドレスには日本語も使える • 未対応のプロバイダーやサービスに注意 •

    Amazon SES は国際化対応済み • ASCII 外の符号も使える • 日本語を含むメールアドレスの送信が可能 • SendGrid は国際化非対応? • 国際化対応に関する記載は見つけられなかった • 日本語を含むメールアドレスは送信できなかった • メールアドレスのバリデーションは OSS など活用すべき • 自分で書くのはかなり大変