実行時に下記エラーになってしまいます。
EFOpenError'ファイル xxxxxx は開けません'
xxxxxxはファイル名でJISに変換された後の文字列が表示されています。
よろしくお願いいたします。
msg := TIdMessage.Create(IdSmtp);
with msg do
begin // 以下JIS変換済
Subject := asubject;
Recipients.EMailAddresses := amailto;
From.Text := afrom;
Body.Text := abody;
CharSet := 'ISO-2022-JP';
ContentType := 'text/plain';
end;
IdSmtp.Host := ahost;
IdSmtp.UserId := edtUserName.Text ;
//添付ファイル
aattach := edt.Text ;
with TIdAttachment.Create(msg.MessageParts, aattach) do
begin
//次の1行をコメントにすると送信は出来るのですがファイル名が文字化けしてしまいます
FileName := jconvert.ConvertJCode(ExtractFileName(aattach), JIS_OUT);
end;
//送信
IdSmtp.Connect;
IdSmtp.Send(msg);
IdSmtp.Disconnect ;
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
>EFOpenError'ファイル xxxxxx は開けません'
>xxxxxxはファイル名でJISに変換された後の文字列が表示されています。
という事は添付ファイルaattachをmsgに追加するときにエンコードしたファイル名の文字列をそのまま渡しているのでエラーになってるという事ですよね。
Createした後にファイル名を指定して渡してるはずなのにファイル名ではなくエンコードしたものが渡されているならCreateしているステップの前の記述が余分?
この回答への補足
回答ありがとうございます。
>・・・エンコードしたファイル名の文字列をそのまま渡しているの・・・
結果を見るとそのようになっているようです。
この書き方を紹介しているHPでは「Create とした後に、再度、ファイル名を指定」とありましたが、Sampleでは上記書き方になっていました。
ということは、「再度、ファイル名を指定」しているつもりがCreateと同時にエンコードしているようですね。
とういことで、先ほどから「再度、ファイル名を指定」をやろうとしているのですが、まだうまくいきません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- JavaScript javascriptで入力フォームが空欄の時にアラートによるエラーを出すコードを書いています。 2 2023/06/13 17:58
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
16進をASCIIコードに変換する...
-
VB.NETで1→A、2→B、26→Z、27→AA...
-
VB6.0の「vbFromUnicode」はVB....
-
C#で文字列を数値に変換する方法
-
16進コード文字列を文字列に変換
-
textbox.textやlabel.captionの...
-
バイト型のデータをLong型に変換
-
C++ 文字列変数と16進数の比較
-
vb6の桁数指定
-
2の補数の計算について
-
VBAのstrConv関数のUNICODE変換...
-
C#でListとDictionaryの判別方法
-
指定日付から90日後の日付を算...
-
【C++/CLI】int型からString型...
-
VC++ std::stringからLPCWSTRに...
-
VBA 変数名に変数を使用したい。
-
ExcelVBAからAccessMDB内のテー...
-
vba フィルター 複数条件 3つ以...
-
2つ目のレコードの値を取得す...
-
フィールド名の指定でエラー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB6.0の「vbFromUnicode」はVB....
-
VB.NETで1→A、2→B、26→Z、27→AA...
-
16進をASCIIコードに変換する...
-
16進コード文字列を文字列に変換
-
WORD型をCString型に変換する方法
-
C++ 文字列変数と16進数の比較
-
C#でListとDictionaryの判別方法
-
【C++/CLI】int型からString型...
-
Pythonの指数表記について
-
バイト型のデータをLong型に変換
-
10進数を2進数
-
2進数から10進数へ変換
-
対数変換のついて
-
数字→漢数字変換
-
Excelの数字(文字列)合計につい...
-
Boolean型変数の値を反転する方法
-
VC++ std::stringからLPCWSTRに...
-
VB6 case文について
-
文字型を日付/時刻型に変換する...
-
textbox.textやlabel.captionの...
おすすめ情報