C# 使用ASP.NET MVC3和附件发送电子邮件

C# 使用ASP.NET MVC3和附件发送电子邮件,c#,asp.net-mvc-3,itextsharp,C#,Asp.net Mvc 3,Itextsharp,我到处找,但没有找到任何解决办法。 问题是:我试图从ASP.NET MVC3应用程序发送带有附件的电子邮件。问题是:附件是(或应该是)用iTextSharp创建的pdf文件。我在控制器中已经有了一个返回ActionResult的方法,这个方法会生成一个pdf响应。问题是:如何从这个ActionResult中获取文件?只需采用“PDF生成操作方法”中使用的相同逻辑,并将流添加到邮件中作为附件: message.Attachments.Add(new Attachment(stream, "name

我到处找,但没有找到任何解决办法。
问题是:我试图从ASP.NET MVC3应用程序发送带有附件的电子邮件。问题是:附件是(或应该是)用iTextSharp创建的pdf文件。我在控制器中已经有了一个返回ActionResult的方法,这个方法会生成一个pdf响应。问题是:如何从这个ActionResult中获取文件?

只需采用“PDF生成操作方法”中使用的相同逻辑,并将
流添加到邮件中作为附件:

message.Attachments.Add(new Attachment(stream, "name", "mimeType"));

只需采用“PDF生成操作方法”中使用的相同逻辑,并将
(或iTextSharp返回的任何内容)作为附件添加到邮件中:

message.Attachments.Add(new Attachment(stream, "name", "mimeType"));

将生成PDF fike流的代码移动到可以在许多地方重复使用的方法中,并在创建附件时使用该方法

public Byte[] GetGeneratedPDF(string someParameter)
{
   //Do your magic to create the PDF and return the byte array

}
现在可以调用此方法来创建附件

MailMessage msg = new MailMessage();
MemoryStream stream = new MemoryStream(GetGeneratedPDF("hi"));
Attachment att1= new Attachment(stream, "stack123.pdf");
msg.Attachments.Add(att1);

将生成PDF fike流的代码移动到可以在许多地方重复使用的方法中,并在创建附件时使用该方法

public Byte[] GetGeneratedPDF(string someParameter)
{
   //Do your magic to create the PDF and return the byte array

}
现在可以调用此方法来创建附件

MailMessage msg = new MailMessage();
MemoryStream stream = new MemoryStream(GetGeneratedPDF("hi"));
Attachment att1= new Attachment(stream, "stack123.pdf");
msg.Attachments.Add(att1);

这不是MVC特有的。将pdf生成代码包装在方法中,并使用该方法获取附件。有很多用C语言发送电子邮件的例子,也许这是更好的解决方案。这不是MVC特有的。将pdf生成代码包装在方法中,并使用该方法获取附件。有很多用C#发送电子邮件的例子,也许这是更好的解决方案。我正在尝试这个解决方案,但是从ActionResult对象“提取”流似乎是不可能的。不,不是从ActionResult,而是从PDF生成器。看一看Shyju的答案,这应该会清楚。我正在尝试这个解决方案,但是从ActionResult对象“提取”流似乎是不可能的。不,不是从ActionResult而是从PDF生成器。看一看Shyju的回答,这应该能清楚地说明问题。