在.NET中常见到在线发邮件的实例,网站加上这个功能可以方便站长与用户的交流。
NET 中发邮件有时候会用到IIS组件中的邮件服务器,不过复杂。对虚拟主机的配置也较麻烦,
也可用第三方组件比如Jmail,但.net本身就已经封装了发邮件的类:WebMail;
不过要首先引入这个类:using System.Web.Mail;//导入邮件发送类 using System.IO;//文件上传类型
这个类中包含了一些常用的对象常用的有From ,To,Subject,Body,Attchments(附件);
具体代码如下:
MailMessage objMail = new MailMessage(); objMail.From = mailFrom.Text; objMail.To = mailTo.Text; objMail.Subject = Subject.Text; objMail.Body = Body.Text; objMail.BodyFormat = MailFormat.Text; //上传附件
string filename, filepath, filepic;
filepic = Path.GetExtension(uploadfile.PostedFile.FileName).ToLower(); if (filepic == ".exe") { Response.Write("<script>alert('对不起,格式错误!')</script>"); //Response.End(); }
filename = Path.GetFileName(uploadfile.PostedFile.FileName); filepath = Server.MapPath("uploadfiles/" + filename); uploadfile.PostedFile.SaveAs(filepath);//保存上传文件到服务器文件夹下; MailAttachment attach = new MailAttachment(filepath);根据上传的路径创建附件对象; objMail.Attachments.Add(attach);//添加附件实例 SmtpMail.SmtpServer = ""; SmtpMail.Send(objMail); message.Text = "成功发送 !:)"; }
在这里上传附件时,对附件的扩展名进行验征,后缀名为.exe的为非法上传格式,当然你也可以添加更多的非法格式;
二:上传文件;
上传文件有多种方法,常用的数据库保存文件路径,文件存放在文件夹下;下面给出我把文件上传到文件夹下的代码;
string filename, filepath, filepic;//定义文件名,文件路径,文件扩展名; filepic = Path.GetExtension(uploadfile.PostedFile.FileName).ToLower();//判断所要上传的文件名 if (filepic == ".exe" || filepic == ".rar" || filepic== ".重命名")//看看是不是符合这几种扩展名,如果想禁止某种类型,直接在这里添加即可; { Response.Write("<script>alert('对不起,格式错误!')</script>"); //Response.End(); } else { try { filename = Path.GetFileName(uploadfile.PostedFile.FileName); filepath = Server.MapPath("uploadfiles/" + filename); uploadfile.PostedFile.SaveAs(filepath); Response.Write("保存路径:" + filepath + "<br>"); Response.Write("文件类型:" + uploadfile.PostedFile.ContentType); message.InnerHtml = "<br><a href='uploadfiles/" + filename + "'>查看文件</a>" + "<a href='uploadfiles.aspx'>返回</a>"; } catch (OleDbException er) { Response.Write("响应时间过长,上传失败!!"); } }
|
请发表评论