Asp.net mvc 将附件添加到电子邮件asp.net mvc 4
我的网站上有反馈表,我的表格中有Asp.net mvc 将附件添加到电子邮件asp.net mvc 4,asp.net-mvc,asp.net-mvc-4,Asp.net Mvc,Asp.net Mvc 4,我的网站上有反馈表,我的表格中有,因此有时需要在电子邮件中添加附件。 我在表单中创建了 @Html.TextBoxFor(model => model.ProjectInformation, null, new { type = "file", @class = "input-file" }) 然后在我的控制器中创建电子邮件并尝试添加附件 [HttpPost] public ActionResult Feedback(FeedbackForm Model) {
,因此有时需要在电子邮件中添加附件。我在表单中创建了
@Html.TextBoxFor(model => model.ProjectInformation, null, new { type = "file", @class = "input-file" })
然后在我的控制器中创建电子邮件并尝试添加附件
[HttpPost]
public ActionResult Feedback(FeedbackForm Model)
{
System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
msg.BodyEncoding = Encoding.UTF8;
msg.From = new MailAddress("test@mail.ru", @Resources.Global.Feedback_Email_Title);
msg.To.Add("tayna-anita@mail.ru");
string message = @Resources.Global.Feedback_Name + ": " + Model.Name + "\n"
+ @Resources.Global.Feedback_Email + ": " + Model.Email + "\n"
+ @Resources.Global.Feedback_Phone + ": " + Model.Phone + "\n"
+ @Resources.Global.Feedback_Company + ": " + Model.Company + "\n\n"
+ Model.AdditionalInformation;
msg.Body = message;
msg.IsBodyHtml = false;
//Attachment
if (Model.ProjectInformation != null)
{
HttpPostedFileBase attFile = Model.ProjectInformation;
int attachFileLength = attFile.ContentLength;
if (attachFileLength > 0)
{
string strFileName = Path.GetFileName(Model.ProjectInformation.FileName);
Model.ProjectInformation.SaveAs(Server.MapPath(strFileName));
Attachment attach = new Attachment(Server.MapPath(strFileName));
msg.Attachments.Add(attach);
string attach1 = strFileName;
}
}
SmtpClient client = new SmtpClient("smtp.mail.ru", 25);
client.UseDefaultCredentials = false;
client.EnableSsl = false;
try
{
client.Send(msg);
}
catch (Exception ex)
{
}
FeedbackForm tempForm = new FeedbackForm();
return View(tempForm);
}
但我认为我需要在发送后删除附件,并尝试在此处添加代码
try
{
client.Send(msg);
if (attach1 != null)
File.Delete(Server.MapPath(attach1));
}
但是我犯了一些错误
及
我应该怎么做才能解决这个问题呢?如果(Model.ProjectInformation!=null) 大概是这样的:
string attach1;
if (Model.ProjectInformation != null)
{
. . .
if (attachFileLength > 0)
{
. . .
attach1 = strFileName;
}
}
谢谢,这很有帮助,但第二个错误没有纠正。@Heidel无效的命名空间,您应该使用
System.IO.File
I使用using System.IO代码>但它没有帮助,同样的错误。@Heidel您仍然有名称空间冲突。将File.Delete()
替换为System.IO.File.Delete()
,编译器无法理解要使用哪个文件
。@Heidel您的if
检查可能不会设置附件1
的值,并且编译器显示错误。使用赋值声明attach1
:字符串attach1=null代码>