K-9とimotenの連携

K-9 Mailimotenで連携してi-mode.netのメールを使うときに、 docomo.ne.jpやsoftbank.jpといった携帯メールアドレスが含まれると重複したメールが送られる問題について、 K-9 Mail側で対処できたのでそのメモ。

K-9 Mailのソースを触るので自己責任でお願いします。ビルドの方法などは本家の方などでやり方を漁ってください。

TO、CC、BCCを合わせて複数のメールアドレスが設定されている中で、 docomo.ne.jpといった携帯で使われているドメインとその他のドメインが混在していると発生します。

  • TO: *@docomo.ne.jp, *@gmail.com
    • 2通
  • TO: *@docomo.ne.jp, *@gmail.com CC: *@i.softbank.jp
    • 3通

※正確には、キャリアごとに使われる文字コードが異なるので発生する模様。

文字コードセットをドメインを見て振り分けしていたので、その部分をすべてコメントアウトする。

    public static String getJisVariantFromAddress(String address) {
        if (address == null)
            return null;
        // imoten START----------------------------------------------------------
        /*if (isInDomain(address, "docomo.ne.jp") || isInDomain(address, "dwmail.jp") ||
            isInDomain(address, "pdx.ne.jp") || isInDomain(address, "willcom.com") ||
            isInDomain(address, "emnet.ne.jp") || isInDomain(address, "emobile.ne.jp"))
            return "docomo";
        else if (isInDomain(address, "softbank.ne.jp") || isInDomain(address, "vodafone.ne.jp") ||
                 isInDomain(address, "disney.ne.jp") || isInDomain(address, "vertuclub.ne.jp"))
            return "softbank";
        else if (isInDomain(address, "ezweb.ne.jp") || isInDomain(address, "ido.ne.jp"))
            return "kddi";*/
        // imoten END-----------------------------------------------------------
        return null;
    }

これはK-9 Mailをimotenとの連携にしか使用していないからできるやり方なので マルチアカウントで通常の使い方もしているような場合は、対応方法自体に見直しが必要だと思います。