最近在学习ASP.NET,想做一个能发送邮件的功能,网上查了下资料发现很多文章都只写了部分的内容却没有比较完整的代码和具体的设置。 自己试了一下,终于能成功发送了,在此写篇博文。
首先先要下载asp.net支持的Jmail组件并进行安装,名称为Jmail44_Pro,大家可以自己去网上搜或者用我给出的链接:http://www.jb51.net/softs/2184.html
然后要下载文件jmail.dll用于在项目中进行引用,
下载链接:http://www.pc6.com/softview/SoftView_104517.html
但在引用前还要对jmail.dll进行注册,具体方式是用快捷键Win+R调出运行窗口,输入命令,如图所示,其中C:\Jmail为你的jmail.dll的路径。
之后再是设置SMTP服务了。针对Win7操作系统,再次用快捷键Win+R调出运行窗口输入:inetmgr点击确定,出现IIS管理器,双击选择SMTP电子邮件。
填入你的邮箱,并进行勾选。
然后建立一个ASP.NET的网页,新建一个Bin文件夹,单击右键选择“添加引用”浏览文件夹并添加刚下载的jmail.dll
再建立个页面这里的话就用别人现成做好的页面了吧。前台需要有这几个textbox还要一个button按钮并要有一个onclick事件。
后代代码如下:
protected void btnSend_Click(object sender, EventArgs e) { try { sendEmail(txtSender.Text.Trim(), txtSUser.Text.Trim(), txtEUser.Text.Trim(), txtEPwd.Text.Trim(), txtReceiver.Text.Trim(), txtSubject.Text.Trim(), txtContent.Text.Trim(), txtEServer.Text.Trim()); } catch (Exception ex) { Response.Write("<script>alert('" + ex.Message.ToString() + "')</script>"); } } public void sendEmail(string sender, string senderuser, string euser, string epwd, string receiver, string subject, string body, string eserver) { jmail.MessageClass jmMessage = new jmail.MessageClass(); jmMessage.Charset = "GB2312"; jmMessage.ISOEncodeHeaders = false; jmMessage.From = sender; jmMessage.FromName = senderuser; jmMessage.Subject = subject; jmMessage.MailServerUserName = euser; jmMessage.MailServerPassWord = epwd; jmMessage.AddRecipient(receiver, "", ""); if (this.upFile.PostedFile.ContentLength != 0) { string sFilePath = this.upFile.PostedFile.FileName; jmMessage.AddAttachment(@sFilePath, true, ""); } jmMessage.Body = body; if (jmMessage.Send(eserver, false)) { Page.RegisterClientScriptBlock("ok", "<script language=javascript>alert('发送成功!')</script>"); } else Page.RegisterClientScriptBlock("ok", "<script language=javascript>alert('发送失败!')</script>"); jmMessage = null; }
具体填写内容
收件人:对方邮箱;
发件人:自己邮箱;
发件人名字:这个的话随意吧,只是对方受到邮件看到的名字而已;
发送邮件服务器:我这里是用163邮箱发送就写了smtp.163.com,若是其它邮箱可以自己更改;
后面两项就是你登录邮箱用的用户名和密码了。
最后点击发送:显示成功!
转载于:https://blog.51cto.com/7927605/1398827