ASP.NET MVC发送电子邮件附件
问题描述:
我有一个控制器操作,可以生成PDF并将其传输到客户端,但也希望有一个控制器操作,将该PDF下载操作的输出作为附件发送。我知道如何发送电子邮件,问题是我如何使用/捕获MVC下载动作来处理我的电子邮件附件。ASP.NET MVC发送电子邮件附件
伪代码:
public PdfResult Download(int? someId)
{
var pdfBuilder = new pdfBuilder();
var pdfStream = pdfBuilder.StreamPdf(someId);
return new PdfResult("someId.pdf", "application/pdf", pdfStream);
}
public ActionResult Email(int? someId)
{
var pdfStream = View("Download", someId);
var attachment = new Attachment(pdfStream, "someId.pdf");
//...send email code
}
答
你可以尝试添加一个辅助类返回,而不是在你的邮箱()方法调用下载()的PdfResult。
如果你已经拥有了你的`PdfBuilder`,你为什么不在发送邮件时再打电话......?如果你不想复制代码,只需将pdf生成代码重构为第三种方法即可。 – rsenna 2011-02-07 18:26:19
你用什么发送电子邮件,需要什么附件。那是需要物理文件还是文件流? – 2011-02-07 18:48:49