Asp.net mvc 2 如何从ASP.NET MVC查看页面发送带有附件的电子邮件?

Asp.net mvc 2 如何从ASP.NET MVC查看页面发送带有附件的电子邮件?,asp.net-mvc-2,Asp.net Mvc 2,我必须从我的ASP.NET MVC 2联系人表单视图页面发送一封电子邮件。我需要一个详细的答案,描述如何为此创建模型、控制器和视图。。下面是我在控制器类的action方法中给出的代码 [AcceptVerbsHttpVerbs.Post] 公共操作结果SendEmailCareerEmailModel CareerEmailModel,HttpPostedFileBase上载 { 如果ModelState.IsValid { bool-isOK=false; 尝试 { MailMessage m

我必须从我的ASP.NET MVC 2联系人表单视图页面发送一封电子邮件。我需要一个详细的答案,描述如何为此创建模型、控制器和视图。。下面是我在控制器类的action方法中给出的代码

[AcceptVerbsHttpVerbs.Post] 公共操作结果SendEmailCareerEmailModel CareerEmailModel,HttpPostedFileBase上载 { 如果ModelState.IsValid { bool-isOK=false; 尝试 { MailMessage msg=新的MailMessage; msg.From=新邮件地址编号-reply@abc.com,网页联络表格; 味精。Addinfo@abc.com; msg.Subject=简历; string body=Name:+careersEMailModel.Name+\n+Phone:+careersEMailModel.Phone+\n+Email:+careersEMailModel.Email; string file=careersEMailModel.Resume; msg.Body=Body; msg.IsBodyHtml=false; SmtpClient smtp=新SmtpClientmailserver_url.net,25; smtp.Sendmsg; 味精处理; isOK=真; CareerMessageModel rcpt=新的CareerMessageModel; rcpt.Title=电子邮件发送成功!!; rcpt.Content=非常感谢您的详细信息。我们将尽快与您联系。; 返回ViewCareerMessage,rcpt; } 捕获异常 { CareerMessageModel err=新的CareerMessageModel; err.Title=抱歉,电子邮件发送失败!!!; err.Content=网站此时发送此邮件时出错。您可以将电子邮件发送到我们的联系人表单中提供的地址。谢谢。; 返回ViewCareerMessage,错误; } } 其他的 { 返回视图; } } 从

编辑:

附件类接受流。所以试试这个。我还没有测试过它,但它应该会给你你需要做什么的要点

foreach (string fileName in Request.Files)
{
    HttpPostedFile file = Request.Files[fileName];

Attachment data = new Attachment(file.InputStream, fileName);
    // do stuff to attach it to the Mail Message

}

要检索上载的文件,您需要执行以下操作

foreach (string file in Request.Files) 
{
    var uploadFile = Request.Files[file];
    if (uploadFile.ContentLength == 0) continue;
    string fileLocation = //File Location with file name, needs to be stored for temporary purpose
    uploadFile.SaveAs(fileLocation);
}
然后,借助以下代码,您可以附加文件

    Attachment data = new Attachment(fileLocation, MediaTypeNames.Application.Octet);
    message.Attachments.Add(data);
处理完电子邮件后,删除服务器上创建的文件


希望这能回答您的问题

非常感谢亲爱的..:但我需要做的是在运行时从web联系人表单发送一封带有附件的电子邮件。我可以不将其上载到项目中的临时文件夹而执行此操作吗?我可以直接从asp.net MVC web联系人表单中获取它并将其发送到特定的电子邮件地址吗?
    Attachment data = new Attachment(fileLocation, MediaTypeNames.Application.Octet);
    message.Attachments.Add(data);