世界を動かす技術を、日本語で。

メールは厄介:主要な欧州の決済処理業者のメールがGWorkspaceに拒否される

概要

  • Viva.com の認証メールが Message-IDヘッダー 欠如で Google Workspace に拒否される問題
  • サポートの対応は 技術的問題の無視ユーザー側での回避 のみ
  • RFC 5322に準拠しない メール送信インフラ のリスク
  • 欧州フィンテックの開発体験の質 への疑問
  • Stripe未対応地域 での選択肢の乏しさと改善提案

Viva.comの認証メールが届かない問題

  • Viva.com はヨーロッパ最大級の 決済プロセッサー
  • 新規アカウント作成時、 認証メールが未着 という問題発生
  • Google Workspace (独自ドメインの法人メール)を利用
  • メールログ で確認した結果、「 Message-IDヘッダーが無効」との理由で 550 5.7.1 エラーによる バウンス を確認
  • RFC 5322 (2008年制定)で Message-ID は「 SHOULD」と推奨されているが、Googleは 必須扱い
  • メールは スパムフォルダにも届かず、完全拒否

回避策とサポート対応

  • @gmail.com の個人アドレスに切り替えることで認証メール受信に成功
  • ビジネス用途のメールアドレスで 登録できない不便
  • サポートに 詳細なバグ報告と証拠 を提出
  • サポートの回答:「 認証済みメールがあるので問題なし」と 技術的問題の認識・対応なし
  • エンジニアへのエスカレーションや再発防止策 も提示されず

技術的観点とリスク

  • Message-ID は全ての メールライブラリ・フレームワーク自動生成 が一般的
  • 除外には意図的な設定ミス構成不備 が必要
  • RFC 5322では「 SHOULD」だが、 Google Workspace では 絶対要件
  • Viva.com のメールインフラの 信頼性疑問
  • 決済インフラの 他領域の品質にも懸念

欧州フィンテックインフラにおける課題

  • 欧州のB2B API/サービス で「 どこか壊れている」という経験が頻発
  • ドキュメントの不備エラーメッセージの不明確さサポートの技術力不足
  • 市場独占状態 では 開発者体験の向上 が後回し
  • Stripe のような 高品質API の未進出地域で 選択肢が限られる現実
  • IRIS等の現地決済システム 対応のため、 妥協せざるを得ない状況

改善提案と今後の期待

  • Viva.com のエンジニアへの要望:「 Message-IDヘッダーを追加」は 一行の修正 で済む
  • ほとんどのメールライブラリなら 自動生成 される仕様
  • Google Workspaceユーザー の利便性向上
  • 欧州フィンテック全体開発体験向上 への期待
  • Stripe や同等のサービスが 欧州全域・現地決済網対応 するまで、同様の問題は続く可能性

Hackerたちの意見

Viva.comの送信確認メールにはMessage-IDヘッダーが欠けてるんだよね。これは2008年からインターネットメッセージフォーマット仕様(RFC 5322)の一部なんだ。 > ... > Message-IDはメールに必要な基本的なヘッダーの一つだよ。該当するRFCの3.6節にはこう書いてあるんだ。 +----------------+--------+------------+----------------------------+ | フィールド | 最小 | 最大数 | 注釈 | | | 数 | | | +----------------+--------+------------+----------------------------+ | | | | | |////////////////////////////////// ... なんか色々 ... //////////////////////////////////| | message-id | 0* | 1 | 存在するべき - 参照 | | | | | 3.6.4 | |////////////////////////////////// ... もっと色々 ... //////////////////////////////////| | optional-field | 0 | 無制限 | | +----------------+--------+------------+----------------------------+ それで、3.6.4節にはこう書いてあるんだ。... すべてのメッセージには「Message-ID:」フィールドがあるべきだって。これは「あるべき」であって「必須」じゃないから、どうしてこれが要件なの?

RFC2119によるSHOULDの公式定義はこうだよ:3. SHOULD この言葉、または形容詞「RECOMMENDED」は、特定の状況において特定の項目を無視する正当な理由が存在するかもしれないことを意味するが、異なる選択をする前にその全ての影響を理解し、慎重に考慮する必要がある。Googleの人たちがMessage-IDについてこれをどう解釈したのか、ちょっと疑問だね。

その通り。Message-IDは必須じゃないんだ。私の別のイライラポイントは、Message-IDを上書きしない方がいいのに、例えばSESはあなたのMessage-IDを捨てて別のものに置き換えちゃうこと :(

私がMessage-IDなしで受け取るメッセージはスパムやフィッシングだけだよ。Notmuchに認識されないから、チェックしないと見えないんだ。

その通りだね。ブログを更新して反映させたよ。ありがとう!

これは、メールが「正当なもの」として認識され、スパムに分類されないための要件だと思う。確かに、好きなヘッダーを使ったり、変な組み合わせやIPアドレス、返信先を設定しても、技術的には有効なメールかもしれないけど、人の受信箱に届くべきものではないよね。それに、世界で最も人気のあるメールプロバイダーで自分のメールをテストしない決済処理業者って、ちょっとおかしいよね。

ヨーロッパのテクノロジーがダメなのは、そういう議論にオープンな人が多いからだと思う。アメリカのエンジニアが「SHOULD」と「MUST」について話し始めたら、PMは「何を聞いてるんだ?」って顔をするだろうし、数分間かけて顧客体験の方が仕様より重要だって納得させようとするだろうね。もし失敗したら、上に報告して自分の望む決定を引き出すんだ。例えば、Googleが消費者アカウントと企業アカウントで扱いを変えるのはなんで?まあ、Googleだから「彼らは整理されてない」って答えもあるけど、両方のケースで顧客の優先順位がちょっと違うから、実際には実用的な選択だった可能性が高いよ。

GMailは君のメッセージを処理するべきだ、じゃなくて、処理しなきゃならないわけじゃない。

RFCの文言に従うべきだし、Googleの解釈には従わなきゃならない。それが違いだよ。

推奨される理由は、受信したメールがすでにメールボックスにあるかどうかを検出するのに役立つからだよ。そうしないと重複がたまっちゃうからね。そうじゃなければ、完全なメールを比較しなきゃいけなくなるけど、たぶんどのMUAもそんなことはしないと思う。もう一つの理由は、返信に元のメッセージへの参照が含まれることがあるから、MUAによって適切にスレッド化できるようになるんだ。だから、これは主に生活の質を向上させる理由で、メールを拒否する理由にはならないよ。

SHOULDは要件だよ。それは、特定の理由がない限り、やらなきゃいけないってこと。例えば「やりたくない」は有効な言い訳じゃないし、「理由が見当たらない」もダメ。確かこの特定のルールはSHOULDになってるのは、MUAがしばしばメッセージをMessage-IDなしで送信するからで、必要に応じて送信サーバーが追加するんだ。https://www.rfc-editor.org/rfc/rfc6409.html#section-8.3 このSHOULDのおかげで、そういうメッセージが有効になるんだよ。今は良いランダムIDを生成できない低エントロピーのデバイスは珍しいけど、古いデバイスはまだ使われてるから、その回避策は正当化されると思う。

フィンテックに関しては全然驚かないよ。金融機関には信じられないくらい無能な人がたくさんいるからね。大部分は意図的な無知だと思う。日常的に関わる金融会社が存在していること自体が本当に驚きなんだ。でも、他の会社も同じくらい無能だって思い出すと、納得できちゃう。「主要なヨーロッパの決済処理業者」って、実際には「主要なヨーロッパの無能センター」ってことだよね。

こういう広い主張には、普通は過激で誇張されてるって言うんだけど、実際にHarland Financial Systemsのコアシステムを使ってた金融機関で働いたこともあるんだ。彼らの「暗号化」は、窓口のワークステーションからコアシステムへのデータ転送のためのものが、たったの2バイトのXORで、接続の最初にキーを送ってたんだ!PCAPのパターンに気づいたら、30分もかからずにこれを解読できるなんて信じられなかった。自分の目で見なければ信じなかったよ。その詐欺は我々の規制当局や彼らの規制当局にも十分だったから、業界には腐った無能が満ちてるのは間違いないね。

FAAMGには無能な部分がたくさんあるよね。ノートパッド……ヨーロッパの金融機関もアメリカと同じくらい腐敗してるのかな?例えば、アメリカン・エキスプレスが誤った有効期限でクレジットカードの取引を承認して最大の利益を上げたり、ウェルズ・ファーゴが消費者の同意なしに新しい口座を開設したりするみたいな。

私のイライラポイントは、わざわざtext/plainの代替メッセージ部分を含めるサービスなんだけど、役に立たないものを送ってくること。例えば、重要なリンクが抜けたメッセージとか。一度、サービスが「これはプレーンテキストメールです」っていう短い一文だけをプレーンテキスト部分として送ってきたことがあったよ。プレーンテキストをサポートしたくないなら、代替部分を送らない方がいいんじゃない?

ちょっと気になるんだけど、送信するメールがHTMLバージョンだけの実装を見たことがあるんだ。送信プロセスの一部として、HTMLがLynxブラウザプロセスを通して-dumpコマンドで実行されて、プレーンテキストが得られて、それがメールのtext/plain部分に含まれるってやつ。これって実際に価値があるのかな?例えば、Lynxのテキストダンプの出力は、HTMLメールの表示よりもプレーンテキストメールクライアントにとって良いの?

可愛くしようとするやつが一番イライラする。新しいメッセージ通知に出てくるから、通知から直接削除できないんだよね。「このエキサイティングな発表を共有したいけど、別のメールアプリを使ってね」って。まぁ、メールクライアントはAIを使ってHTMLをプレーンテキストに要約すべきだっていう意見が出るんだろうけど。

これが最も問題なのは、彼らがGoogle Workspacesでメールインフラをテストしなかったことだよ。想像してみて、他に何をテストしてないんだろう。

そうだよね、だって世界中がGoogleワークスペースを使ってるからね、って感じだよね /s

ここでGoogleに少し同情する気持ちがあるんだよね、普段はあんまり言わないけど。最近GmailからFastmailに乗り換えたんだけど、全体的には満足してる。でも、定期的に受け取るスパムやフィッシングメールの量には驚いてる。Googleのフィルタリングは厳しすぎるかもしれないけど、正当な目的があるのは確かだね。

この切り替えを考えたことがあるんだけど、つまり以前はGmailがメールを落としてたか、スパムに入ってたってこと?

Fastmailは新しいスパム技術にちょっと遅れて対応する時期があるみたいで、ユーザーがある程度フィルタリングするのに頼ってるよ。年に2回くらいスパムが混ざるけど、スパムとして報告すればすぐに止まる。まあ、他の面では何年も満足して使ってるけどね。

それを言うと面白いね、最近Fastmailに切り替えたら前よりスパムが増えたんだけど、しばらくスパムとしてマークしたら今は落ち着いてきたと思う。これもプロバイダーを変えたことの症状かもしれないね。前のプロバイダーは過去のスパムの傾向を知ってたけど、Fastmailは慣れるまでに時間がかかったのかも。君も同じような体験になるといいな。

ESPで働いてたことがあるんだけど、送信用のサーバーソフトをいくつか使ってたんだ。どれもMessage-IDなしではメッセージを受け付けなかったよ。でも、たとえ超カスタムなSMTPインジェクションサービスを作ったとしても、送信先の主要なプロバイダーからのバウンスを無視するなんて考えられないよ。そんな決済プロバイダーとはビジネスをしたくないね。

これが一番イライラするんだよね。時々、面倒なことをするシステムと付き合わざるを得ないことがある。イライラするけど、理論的に標準で必要かどうかよりも、ユーザーが問題を抱えないようにすることの方が重要なんだ。これよりもひどいケースをたくさん経験してきたけど、統合していたシステムが全然合理的じゃないことをしてた。でも、彼らには市場の力があったから、ユーザーのために我慢して対処したんだ。もしかしたらGoogleが間違ってるかもしれないけど、それでも解決策を実装しないのはどういうこと?

「メールは難しい」、ソフトウェア開発は難しい、ITは難しい、歩きながら話すのも難しい、手紙を送るのも難しい。組織がこういうふうに問題を捉えると、伝えたいメッセージへの信頼が薄れるんだよね。メールは難しい問題じゃなくて、誰も本当に対処したくない問題なんだ。メールはシンプルで、テキストベースのプロトコルで、最初はオープンだったけど、今はメールが届くようにセキュリティを追加しなきゃいけない。

誰が正しいかって言うと、どちらも正しくないと思う。決済処理業者が送信すべきだけど、RFCによれば、メッセージIDがないメールを拒否するのは間違いだよね。多分、SHOULDになってるのは、RFCがメッセージIDヘッダーを追加する前のソフトウェアとの後方互換性のためだと思う。ヘッダーが欠けてることとスパムであることには相関があるかもしれないけど、それならスパムフォルダに入れるべきで、完全に拒否するのはおかしい。 ---------------------------- サポートの体験も、他の会社のサポートでの経験と似てるね。エンジニアが問題を簡単に解決できるくらいの詳細を提供しても、サポート担当者はそれを無視するし、エンジニアがそれを聞くことはまずないだろうね。

そうだね。この細かいところが全部変だよね。メールを正式な仕様として扱うのはうまくいかないし、業界全体がそれを何十年も受け入れてきたんだ。スパムと有効なトラフィックをフィルタリングするには、たくさんのヒューリスティックを使ったり、どんどん増えていく補助信号(SPF、DKIM、などなど)を活用しないと無理だよ。要するに、この世界のほとんどのことは「SHOULD」で、せいぜいその程度。ルールは会話みたいなもんだね。

え、俺はヨーロッパに大半の人生を過ごしてきたけど、vivaって名前はMicrosoftの企業Facebook(yammer)の悪いネーミングとしてしか聞いたことないよ。ここではほとんどの会社がウェブサイトでStripeを使ってる。

まず思いつくのは、どうしてviva.comはGoogle Workspaceにメールを送れないのに、誰も気づかなかったのかってこと。これ、どれくらい続いてるの?次に、どんなメールソフトを使ってるのか?もしそれが比較的一般的なソフトなら、この問題が起こるとは思わないけど(もしかしたら一般的なソフトだけど設定ミスかも)。三つ目、ヘッダーは必須じゃないけど、私は普通「SHOULD」を「実装しないと問題が起こるかもしれない」って意味で読むよ。SHOULDはMAYじゃないからね。四つ目、Googleがメッセージをバウンスして、解決方法を説明する適切なエラーを返してくれたことに感謝すべきだよ。過去にGoogleやMicrosoftといろいろ問題があったけど、メッセージを受け取った後に/dev/nullに送られたこともあったから。