2017-05-30

BASP21で受信したメール添付ファイル名などが文字化けする問題対処ポイント

今時BASP21 DLLフリー版)でメール受信してどうのこうので困ってる人が世の中にどのくらいいるかどうかわからないけど、今日嵌ってググってもまともな答えが出てこなくて途方にくれたのでポイントメモっておく。

問題と原因

BASP21 DLLのRcvMailメソッドPOP3サーバから受信してReadMailメソッドメールの内容を取得すると、一部のメール送信者や添付ファイル名が文字化けして正常に取得できない。これはBASP21 DLLのReadMailメソッド最近普通に送信されるUTF-8メール対応していないため。

対処

RcvMailで受信したファイルをReadMailで読み込む前に直接開き、Base64エンコードされたUTF-8文字があったらデコードしてJISに変換してBase64エンコードして保存する。その処理したファイルをReadMailで取り扱うようにする。全部BASP21の機能でできる。

落とし穴

BASP21のKconvメソッドの第1引数のinstrに文字列を渡せるのはUnicode UCS-2のみの場合だけらしく、UTF-8文字列を渡しても正常に動作しない。なので、一旦テンポラリファイルに書き出しKconvFileメソッド使用して変換を行う必要がある。っていまドキュメント眺めてたら文字列バイト配列にするByteArrayというメソッドがあるみたいなのでこれをを使えばできるかもしれない。けどもう正直いじりたくないよ…。

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん