C# 将文件附加到来自ActionResult的电子邮件

C# 将文件附加到来自ActionResult的电子邮件,c#,asp.net-mvc,C#,Asp.net Mvc,在我的控制器中,我有一个ActionResult,它返回生成的PDF文件: public ActionResult PdfById(int id) { .... return File(memoryStream.ToArray(), "application/pdf", fileName); } 有没有办法将所述文件作为附件附加到电子邮件中?您可以在System.Net.Mail命名空间中进行检查,并使用SmtpClient类。可以填写MailMessage类,该类可以包含

在我的控制器中,我有一个ActionResult,它返回生成的PDF文件:

public ActionResult PdfById(int id)
{    
   ....
   return File(memoryStream.ToArray(), "application/pdf", fileName);
}

有没有办法将所述文件作为附件附加到电子邮件中?

您可以在
System.Net.Mail
命名空间中进行检查,并使用
SmtpClient
类。可以填写
MailMessage
类,该类可以包含附件,然后您可以发送它。
可以直接在应用程序的配置文件(.config)中配置SMTP服务器数据,也可以通过自己的代码以编程方式配置SMTP服务器数据。

您可以在
System.Net.Mail
命名空间内进行检查,并使用
SmtpClient
类。可以填写
MailMessage
类,该类可以包含附件,然后您可以发送它。
可以直接在应用程序的配置文件(.config)中配置SMTP服务器数据,也可以通过自己编写的代码以编程方式配置SMTP服务器数据。

经过一些搜索和修补,我找到了解决方案。希望有些人也会觉得这很有用

var contentType = new System.Net.Mime.ContentType(System.Net.Mime.MediaTypeNames.Application.Pdf);

var attachmentFile = PdfById(id);
var attachmentStream = new MemoryStream((attachmentFile as FileContentResult).FileContents);
var attachmentTitle = (attachmentFile as FileContentResult).FileDownloadName;

var message = new MailMessage();
message.Attachments.Add(new Attachment(attachmentStream, attachmentTitle, contentType.ToString()));

经过谷歌搜索和修补,我找到了解决方案。希望有些人也会觉得这很有用

var contentType = new System.Net.Mime.ContentType(System.Net.Mime.MediaTypeNames.Application.Pdf);

var attachmentFile = PdfById(id);
var attachmentStream = new MemoryStream((attachmentFile as FileContentResult).FileContents);
var attachmentTitle = (attachmentFile as FileContentResult).FileDownloadName;

var message = new MailMessage();
message.Attachments.Add(new Attachment(attachmentStream, attachmentTitle, contentType.ToString()));

请注意,“模型-视图-控制器”标记用于回答有关模式的问题。ASP.NET-MVC实现有一个特定的标记。您的意思是在客户端还是服务器上?请注意,模型视图控制器标记用于回答有关模式的问题。ASP.NET-MVC实现有一个特定的标记。您的意思是在客户端还是服务器上?