将FTP服务器上现有的文件附加到C#NET中的邮件

将FTP服务器上现有的文件附加到C#NET中的邮件,c#,asp.net,.net,ftp,email-attachments,C#,Asp.net,.net,Ftp,Email Attachments,我正在尝试将保存在FTP服务器上的文件附加到SMTP邮件 mail.Body = body; System.Net.Mail.Attachment attachment; attachment = new System.Net.Mail.Attachment(Server.MapPath("Documents/quote.pdf")); mail.Attachments.Add(attachment); SmtpServer.Send(mail); 但是,由于身份验证问题,查找附件似乎很麻

我正在尝试将保存在FTP服务器上的文件附加到SMTP邮件

mail.Body = body;

System.Net.Mail.Attachment attachment;

attachment = new System.Net.Mail.Attachment(Server.MapPath("Documents/quote.pdf"));
mail.Attachments.Add(attachment);
SmtpServer.Send(mail);
但是,由于身份验证问题,查找附件似乎很麻烦。我不太确定是否应该使用RequestStream并获得响应,或者是否有一种方法来验证用于读取和添加电子邮件附件的路径。RequestStream的问题是我无法获取文件名,这是我在创建附件时需要添加的参数。
有什么建议吗?提前感谢。

使用
FtpWebRequest
获取引用FTP服务器上文件内容的
流。然后使用一个


您指的是什么
RequestStream
?“无法获取文件名”是什么意思?如果要从FTP检索文件,必须知道其名称。毕竟,名称在您的代码中!工作起来很有魅力。万分感谢!道歉。这是新的。上次我点击了向上投票图标,我没有足够的声誉哈哈。
const string filename = "quote.pdf";

FtpWebRequest request =
    (FtpWebRequest)WebRequest.Create("ftp://ftp.example.com/remote/path/" + filename);
request.Credentials = new NetworkCredential("username", "password");
request.Method = WebRequestMethods.Ftp.DownloadFile;

Stream contentStream = request.GetResponse().GetResponseStream();
Attachment attachment = new System.Net.Mail.Attachment(contentStream, filename);