使用asp.net发送邮件附件
我正在尝试使用asp.net发送带有附件的邮件。为此,我执行了以下代码: Default.aspx.cs:使用asp.net发送邮件附件,asp.net,mailing,Asp.net,Mailing,我正在尝试使用asp.net发送带有附件的邮件。为此,我执行了以下代码: Default.aspx.cs: using (MailMessage mailMessage = new MailMessage()) { mailMessage.From = new MailAddress(ConfigurationManager.AppSettings["UserName"]); mailMessage.Subject = "Test
using (MailMessage mailMessage = new MailMessage())
{
mailMessage.From = new MailAddress(ConfigurationManager.AppSettings["UserName"]);
mailMessage.Subject = "Test Subject";
mailMessage.Body = myString.ToString();
if (fuAttachment.HasFile)
{
string FileName = Path.GetFileName(fuAttachment.PostedFile.FileName);
mailMessage.Attachments.Add(new Attachment(fuAttachment.PostedFile.InputStream, FileName));
}
mailMessage.IsBodyHtml = true;
mailMessage.To.Add(new MailAddress(txtem.Text.ToString()));
mailMessage.CC.Add(new MailAddress("sample@test.com"));
mailMessage.Bcc.Add(new MailAddress("sample1@test.com"));
SmtpClient smtp = new SmtpClient();
smtp.Host = ConfigurationManager.AppSettings["Host"];
smtp.EnableSsl = Convert.ToBoolean(ConfigurationManager.AppSettings["EnableSsl"]);
System.Net.NetworkCredential NetworkCred = new System.Net.NetworkCredential();
NetworkCred.UserName = ConfigurationManager.AppSettings["UserName"];
NetworkCred.Password = ConfigurationManager.AppSettings["Password"];
smtp.UseDefaultCredentials = true;
smtp.Credentials = NetworkCred;
smtp.Port = int.Parse(ConfigurationManager.AppSettings["Port"]);
smtp.Send(mailMessage);
}
Default.aspx:
<tr>
<td align="left">Passport Scan Copy</td>
<td align="left">
<asp:FileUpload ID="fuAttachment" runat="server" />
</td>
</tr>
护照扫描件
现在有了这个代码,我可以正常发送电子邮件,但没有附件!是因为我必须在服务器上单独上传文件。在这一点上,我实际上一无所知。请任何人帮助我。将表单enctype设置为多部分/表单数据。否则,文件不会发布到服务器,附件也不会发送
<form runat="server" enctype="multipart/form-data">
如果这是服务器端代码,则要附加的文件必须可以作为文件或以流的形式访问。如果是web服务器,这意味着内容必须已上载。@Richard…要在服务器中上载内容,我执行了以下代码:If(fuAttachment.HasFile){try{string filename=Path.GetFileName(fuAttachment.filename);fuAttachment.SaveAs(server.MapPath(“~/”)+filename);}catch(Exception ex){上载。发生以下错误:“+ex.Message;Response.Write(ex.ToString());}”但是它没有上传。我在页面中没有表单标签…它是由site.master设计的。你可以安全地在site.master中将enctype属性添加到表单标签中。它不应该影响其他表单的行为…我已经添加了它,但是附件仍然不起作用。你能在这一行上设置断点吗“if(fuAttachment.HasFile)"? HasFile的值是否为真?…当尝试从单独的页面执行此操作时,文件已上载到服务器中,但从该页面它未上载,令人惊讶的是,也没有显示错误