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

时间:2016-07-01 12:31:42

标签: c# asp.net-mvc

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

arr_index = 1

20.times do
  if arr_index < 1
    operator = "WHERE"
  else
    operator = "AND"
  end


  if input[arr_index] != nil && input[arr_index + 1] == 0
    Statement.sub! "THIS", "#{operator} #{input[arr_index + 7]} #{input[arr_index + 8]} THIS"
  end

  arr_index += 4
end

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我在谷歌搜索和修补之后得出了解决方案。希望有些人会发现这也很有用。

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()));