電子メールにカスタムファイルを添付しようとしています。以下のコードは、暗号化されたファイルを作成し、そのファイルを電子メールに添付しようとするバッチファイルを呼び出します。バッチファイルはファイルを正常に作成しますが、アタッチしようとするとファイルが存在しないと表示されます。私は、あなたがメモリバッファを作成するか、同じスレッドにアタッチする必要があることを読んで、私はそれを思ってみましたが、今は本当に困っています。誰も助けることができますか?C#:電子メールにカスタムファイル(.sl)を添付します。
コード:
string file = @"C:\EncryptedFile\file.sl";
//EXECUTE BATCHFILE SUPPLYING PARAMETERS TO IT
Process process = new Process();
process.StartInfo.Arguments = string.Format("{0} {1} {2} {3}",
file,
key,
doc1,
doc2);
process.StartInfo.FileName = MyBatchFile;
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;
process.Start();
//attach to email
Attachment attachment;
attachment = new Attachment(file);
mail.Attachments.Add(attachment);
エラー:
System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\EncryptedFile\file.sl'. at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share) at System.Net.Mail.AttachmentBase.SetContentFromFile(String fileName, String mediaType) at System.Net.Mail.AttachmentBase..ctor(String fileName) at System.Net.Mail.Attachment..ctor(String fileName)
ありがとう!
添付ファイルのコードが呼び出されているときにデバッグポイント(バッチファイルの実行を停止する)を置いてチェックしましたか? また、2つのバッチファイルを作成することをお勧めします。 1つはファイルを作成し、もう1つはメールに添付することです。最初のバッチファイルの実行の最後に2番目のバッチファイルを呼び出すことができます。これは、ファイルが正しく作成されなくなるまで待っています。 –