RT:ドヤリング

Twitterのドヤリングアカウント(@doyaling)の出張所です。文章が長くなるときにコチラ使用します。

Macの標準メールアプリからGmailアカウントでメールを送信した際に本文が消えてしまう現象について

 大変困っている問題なのですが、同じ症状に見舞われたことがない人にとっては、何のことか分からないと思います。また、Eメールのプロトコルやメールサーバの仕様に詳しい人がみたら、一瞬で解決してしまう症状かも知れません。抜本的な解決策を早く見つけたいです。

変なエラー

 さて、私はプライベートではGmailをよく使ってるのですが、ブラウザから操作するのが嫌いなので、Macでは常にOS X標準のメールアプリからGmailを操作しています。ブラウザ版を使わないのは、iCloudメールやdocomoメールと統合して使いたいからというのもありますが、そもそもUIがクソだと思うからです。クソ。インフラは凄いけどUIはクソ。
 ふだん「MacはUIがシンプルで良い」とか言っている人がGmailはブラウザから使っているというのを聞くと、「あんなややこしいものが使えるならパソコンもWindowsでいいじゃん」と思ってしまいます。


 まぁそれは人それぞれなので良いとして、原因がイマイチ不明なのですが、ときどき私がMacから送信したGmailのメールが変なエラーを起こすので困っています。
 メールそのものは相手に一応届いているものの、

  • 本文が消えて白紙になっている。
  • 添付ファイルはちゃんとついている。
  • しかし私が添付したファイルの他に、「ATT00001.txt」「ATT00002.txt」といったテキストファイルが付加されている。
  • 付加される添付ファイル名は、上記のように00001からの通し番号の場合もあれば、「ATT942883.txt」といった番号になっている場合もある。
  • 付加されるファイルの数は、まちまちだが、もともと自分で添付したファイルの数を超えることはない。
  • 上記の付加された添付ファイルのうち、たとえば「ATT00001.txt」を開くと消えた本文が記載されている(ただし、必ずではない。記載されていない場合もある)


 という奇妙な現象(以下「謎エラー」と呼びます)が起きるんです。
 たとえば、↓こんな感じで送信メールを作成しているとします。


f:id:doyaling:20140619225119p:plain


 ちなみにMacの標準メールアプリでは、作成メールの本文中に添付ファイルが埋め込まれるようなUIになっており、たとえメール作成ウィンドウの


f:id:doyaling:20140620075639p:plain


 ↑のボタンをクリックしてFinderからファイルを選んだとしても表示は同じです(設定で変えれるのかな?)。受信側では、Gmailでは同じようなレイアウトで表示されますが、他の場合だとそれぞれのメーラーの「添付ファイル」欄に表示されるだけの場合もあります。
 で、これを送信すると、受信側で、↓こんなことになってしまうときがあるんです。


f:id:doyaling:20140619225150p:plain


f:id:doyaling:20140619225218p:plain


 本文は消えてしまってますよね。そして変なテキストファイルが添付ファイルとして付加されています。
 このテキストファイルのうちの1つを開くと、↓のように元の本文が書かれています。


f:id:doyaling:20140619225233p:plain


 何なんだこれは・・・。


 ググってみても同じ謎エラーに見舞われている人はみつからず、途方にくれておりました。
 少し異なる症状であれば、何かのエラーに付随して「ATT00001.txt」や「ATT00001.htm」という添付ファイルが発生するという報告は何件かみつかりました。が、結局のところ「全く同じ症状」ではなかったので、対策を打つには至らずです。

エラーの発生条件をさぐる

 じつはちょうど昨日と今日も、ある人に送ったメールが立て続けに謎エラーを起こしてしまって、「また本文消えてますよ~」という連絡をもらっていたところです。


 いったい、何が原因なのか?
 これまでの経験からは、少なくとも、

  • もともと何かしら添付ファイルをつけている場合にのみ、謎エラーが発生している
  • 同じメールでも、複数あて先のうち一部の受信者でのみ発生したケースがあったので、受信側のメールサーバ又はメーラーとの相性が関係あるんだろう


 ということは分かっていました。
 それで、相性というのはたとえば文字コードとか、添付ファイルのサイズとかファイル数とかが、受信側のメールサーバのフィルタリングやウィルススキャンとの相性が悪くて〜みたいな感じを想像してたんですが、インターネットやEメールのしくみをよくわかってないので、的外れかも知れないし、面倒なのでそれ以上のことを考えるのは諦めてました。


 ところが今日たまたま少し時間があって、夕食前のドヤリング中にいくつかのパターンを試してみたところ、案外あっさり、上記の謎エラーが発生する条件が明らかになってきました。
 まぁまだ完全に分かったわけではないのですが、少なくとも自分の手元の環境では100%の確率で再現できるので、「必要条件」はまだ分からないけど「十分条件」は分かったと言える状況です。


 で、その手元の環境における十分条件というのは何かというと・・・

  1. Mac OS X標準のMail.appを使って、Gmailアカウントから発信している
  2. Microsoft Exchange Serverを使っているあて先への送信である
  3. 添付ファイルを1つでも添付している
  4. 添付ファイルはPDFである
  5. メールのフォーマットはプレーンテキストと指定*1
  6. 作成中のメール本文中に埋まっているいずれかの添付ファイルの、左側か上側に、スペース(全角でも半角でも)や改行が入っている


 というものです。十分条件なので、上記のなかには必須ではないものも含まれているかもです。


 とくに6.に気づくのに苦労しましたが、気づいてみると確かに、私はファイルを添付するときに、ファイルとファイルの間に全角スペースを入れるときがあるなぁと・・・。つまり↓の画像でいうと、2個目と3個目の添付ファイルの「左」に「スペース」が入っているので、上記の条件に合致します。


f:id:doyaling:20140619225119p:plain


 2.については、あまり自信はないのですが、私が試した範囲では自分の会社あての場合と大学あて*2の場合にのみ謎エラーが発生しており、少なくとも両者の共通点のひとつは、Exchangeサーバを使っていることです。
 ちなみに大学のアドレスはoffice365というMicrosoftクラウドサービスを使っていて、これはExchangeサーバを使ってます。ちなみに同じMicrosoftでも、outlook.comのフリーアドレスあての場合は謎エラーは発生しません。こちらはExchangeを使っていないため……って現時点では勝手に解釈してますが、的外れかもしれません。
 なお、Gmailあて、iCloudあて、docomoメール(ブラウザ版で確認)あてでは、謎エラーが発生しませんでした。


 そしてもうひとつ気づいたのは、メール送信時に添付ファイルよりも左や上に記載していた本文は消えず、添付ファイルよりも右や下の本文が消えるということです。
 つまり、たとえば


f:id:doyaling:20140619225300p:plain


 ↑こんなふうに添付ファイルの上下にテキストが存在する場合、謎エラー下の受信側では↓こんなふうになるわけです。


f:id:doyaling:20140619225323p:plain



 下側のテキストが消えて、上側のテキストが残っていますね。上側のテキストだったはずなのに添付ファイル群の下に表示されているのは、さきほど言ったようにMacのメールアプリ上では本文埋め込みの表示になっていても、受信側では「プレーンテキスト+添付ファイル」として扱われて、所定の「添付ファイル欄」に表示されるからです。


 ちなみに付加された添付ファイルを開いてみると、予想通り、↓こんな感じになっています。


f:id:doyaling:20140619225402p:plain

今後の対応

 まぁこの現象がなんなのかは未だによく分からないのですが、少なくとも対策として、

  1. 添付ファイルはかならずメール作成ウィンドウの左上に詰めて配置するようにすればいい。
  2. あるいは、消えるのは添付ファイルの右や下の文章なので、添付ファイルを本文の最下部に埋め込むような形でメール作成すればいい。


 ということが明らかになったので、これから夕食後のドヤリングに出かけてきます。
 なお厳密には、分かったのは「十分条件」ですから、上記のように気をつけて書いても謎エラーが発生する恐れはあるのですが、何回か試してみたところ大丈夫っぽいです。*3

追記

 だいたい解決したので、下記にまとめました。


 Macから送るメールの本文が消えてしまう問題のつづき
 http://doyaling.hatenablog.com/entry/2014/06/21/120114

*1:ただ、添付ファイルがあるものって、プレーンテキストと設定していても送信時にリッチテキストに変わっている気はするので、その辺にも原因があるかも?

*2:私は社会人でもあり学生でもある身分です

*3:もっと厳密にいえば、ほんとに100%再現できるかは分からないので、十分条件かどうかも疑いはある。でもだいたいでOK。