いつもお世話になっております。
このたび、TNMPOP3コンポーネントを用いてメールを受信しております。
流れ的には、
接続→受信数チェック→受信→コード変換→切断
という形になると思いますが、日本語名を含む添付ファイルを受信しようとすると、上記の流れの中の「受信(GetMailMessage)」のところで例外をおこしてしまいます。
例外を起こさないためにはいかなる方法をとるのがよろしいでしょうか。
例(骨組み)
if NMPOP3.MailCount > 0 then
begin
NMPOP3.AttachFilePath := 'C:\'; //受信フォルダ
NMPOP3.GetMailMessage( 1 ); //受信 ※ここで例外発生!!
・
・
・
end;
TNMPOP3の環境がないので未確認ですが、
http://www2.big.or.jp/~osamu/Delphi/delphi-browse.cgi?index=049267
こちらをどうぞ。
ファイル名を受け取るタイミングをイベントで受け取り、そこで文字コードをデコードすればよいわけですね。
ありがとうございました。
procedure TMailRcvForm.NMPOP3DecodeStart(var FileName: String);
var
szBuffer: string;
begin
szBuffer := DecodeHeaderString(FileName); //デコード
FileName:= jis2sjis( szBuffer ); //SJISに変換して戻す
end;
※jconvertを使用させてもらっております
ツイート | ![]() |