我正在尝试发送一封包含附件的电子邮件,该附件将由用户上传,然后发送到管理员电子邮件。
我已经在IE 11上正确配置了这个,但是对于Chrome / Firefox,它提供的FilePath存在限制。由于IE 11提供了完整的文件路径,因此它允许我的功能工作。
Chrome / Firefox是否有可能解决这个问题。
邮件留言代码:
protected void Submit_Click(object sender, EventArgs e)
{
using (MailMessage message = new MailMessage())
{
if (Attachment1.HasFile == false)
{
message.From = new MailAddress(Environment.UserName + "@domain");
message.To.Add(new MailAddress("MyEmail"));
message.IsBodyHtml = true;
message.Subject = "New Request from self service portal: " + Summary.Text.ToString();
message.Body = "Customer Name:</br>Customer Username:" + Environment.UserName + "</br>" + DetailedSummary.Text.ToString();
SmtpClient client = new SmtpClient();
client.Host = "IP ADDRESS";
client.Send(message);
} else {
message.From = new MailAddress(Environment.UserName + "@domain");
message.To.Add(new MailAddress("myemail"));
string file = Attachment1.PostedFile.FileName;
message.Attachments.Add(new Attachment(file));
message.IsBodyHtml = true;
message.Subject = "New Request from self service portal: " + Summary.Text.ToString();
message.Body = "Customer Name:</br>Customer Username:" + Environment.UserName + "</br>" + DetailedSummary.Text.ToString();
SmtpClient client = new SmtpClient();
client.Host = "IP ADDRESS";
client.Send(message);
}
}
}
这是用户将指定将上载哪个文件的位置,并且不会是每次都上载的静态文件。意思是,我将需要FileUpload中的文件路径。
答案 0 :(得分:5)
HttpPostedFile.FileName
&#34;获取客户端上文件的完全限定名称。&#34;
在您的计算机上进行开发(并使用实际发送完整路径的浏览器,哪些适当的浏览器不可用),但只要您在服务器上部署它就会中断。
最简单的方法是使用new Attachment(Attachment1.PostedFile.InputStream, "attachmentname")
constructor直接将上传的文件流式传输到附件中,而无需自行临时保存。