将存在于 FTP 服务器上的文件附加到 C# .NET 中的邮件
Attach file existing on FTP server to mail in C# .NET
我正在尝试将保存在 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
获取 Stream
引用 FTP 服务器上的文件内容。然后使用 overload of Attachment
constructor that takes a Stream
.
const string filename = "quote.pdf";
var url = "ftp://ftp.example.com/remote/path/" + filename;
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(url);
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);
我正在尝试将保存在 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
获取 Stream
引用 FTP 服务器上的文件内容。然后使用 overload of Attachment
constructor that takes a Stream
.
const string filename = "quote.pdf";
var url = "ftp://ftp.example.com/remote/path/" + filename;
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(url);
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);