Ich versuche, eine benutzerdefinierte Datei ohne Erfolg an eine E-Mail anzuhängen. Der folgende Code ruft eine Batch-Datei auf, die eine verschlüsselte Datei erstellt und dann versucht, diese Datei an eine E-Mail anzuhängen. Die Stapeldatei erstellt die Datei erfolgreich, aber wenn sie versucht, eine Datei anzuhängen, wird sie als nicht vorhanden angezeigt. Ich lese, dass Sie einen Gedächtnispuffer schaffen oder an denselben Faden anschließen müssen, ich versuchte, mit ihm zu denken, aber ich bin im Moment wirklich ratlos. Kann jemand helfen?C#: Eine benutzerdefinierte Datei (.sl) an eine E-Mail anhängen
Code:
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);
Fehler:
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)
Dank!
Haben Sie überprüft, indem Sie einen Debug-Punkt setzen (die Ausführung der Batch-Datei anhalten), dass die Datei bereits existiert, wenn der Attachment-Code aufgerufen wird? auch würde ich vorschlagen, zwei Batch-Dateien zu erstellen. Eine besteht darin, die Datei zu erstellen, und die andere besteht darin, sie an die Mail anzuhängen. Sie können die zweite Batch-Datei am Ende der Ausführung der ersten Batch-Datei aufrufen, wobei einige warten müssen, bis die Datei nicht ordnungsgemäß erstellt wird. –