c#:将自定义文件(.sl)附加到电子邮件

本文关键字:电子邮件 sl 自定义 文件 | 更新日期: 2023-09-27 18:16:46

我试图将自定义文件附加到电子邮件中,但无济于事。下面的代码调用创建一个加密文件的批处理文件,然后我尝试将该文件附加到电子邮件。批处理文件成功地创建了该文件,但是当它试图附加时,它说该文件不存在。我读到,你需要创建一个内存缓冲区或附加到同一线程,我试着用它思考,但我现在真的难住了。有人能帮忙吗?

代码:

                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);
错误:

先。无法找到文件的一部分"C: ' EncryptedFile ' file.sl"道路。在System.IO.__Error。WinIOError(Int32 errorCode, String maybeFullPath)
在System.IO.FileStream。Init(字符串路径,FileMode模式,FileAccessaccess, Int32权限,Boolean useRights, FileShare share, Int32bufferSize, FileOptions选项,SECURITY_ATTRIBUTES secAttrs, StringmsgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
在System.IO.FileStream . .字符串路径,FileMode模式,FileAccess访问,文件共享)System.Net.Mail.AttachmentBase。SetContentFromFile (String文件名,在System.Net.Mail.AttachmentBase.文件名)在system.net.mail.附件…男星(字符串文件名)

谢谢!

c#:将自定义文件(.sl)附加到电子邮件

异常非常明显。这意味着在创建附件时该文件不存在。我会修改你的代码:

  1. 等待进程退出。如果没有它,您可以在批处理文件创建附件之前创建附件。
  2. 检查退出代码(如果你的批处理支持它)
  3. 在创建附件之前检查文件,以处理批处理由于某种原因没有创建文件的情况。