import quopri
import base64


def decode_msg(msg, cte, charset):
    """ メール本文をデコードする
    * msg
      - メール本文（バイナリ形式）
    * cte(Content-Transfer-Encoding)
      - "base64"
      - "quoted-printable"
      - それ以外は、そのまま
    * charset(文字コード)
      - "utf-8"
      - "iso-2022-jp"
      - それ以外は、"ascii"とみなす
    """

    if cte == "base64":
        b = base64.b64decode(msg)
    elif cte == "quoted-printable":
        b = quopri.decodestring(msg, header=False)
    else:
        b = msg
    if charset == "iso-2022-jp":
        return b.decode("iso-2022-jp", "ignore")
    elif charset == "utf-8":
        return b.decode("utf-8", "ignore")
    else:
        return b.decode("ascii", "ignore")