码迷,mamicode.com
首页 > Windows程序 > 详细

C#之发送邮件汇总

时间:2016-10-22 23:45:47      阅读:346      评论:0      收藏:0      [点我收藏+]

标签:archive   users   network   als   mail   and   else   str   邮箱   

最近想搞个网站,其中找回密码用到了我们常见到的利用邮箱找回。利用邮箱的好处是可以有效确认修改密码者的身份。

百度了几篇博客,各有千秋。最终采用了QI Fei同志的博客,有Demo下载,看了看思路清晰,然后还利用到了逆天提供邮箱。感谢两位。

参考博客: QI Fei Blog---- http://www.cnblogs.com/youring2/archive/2008/11/29/1343911.html(主要看下载的Demo)

毒逆天 Blog---http://www.cnblogs.com/dunitian/p/5682930.html (主要看提供的账号)

接下来说下发送邮件的大概思路:1.首先提到的是SMTP服务器,官方称之为“简单的文件传输协议”,说白了就是指定你发送文件是什么服务器,如果使用的QQ则写smtp.qq.net,使用的163则写smtp.163.com

2.再就是指定发送人的邮箱的名称和密码  3.指定接受者的邮箱 4.发送即可

-----------------综合上面的博客,我做了个获取验证码的功能。 输入邮箱发送验证码,然后后台返回验证码,将验证码显示在下面的输入框内,如图所示:

技术分享

这里我利用的MVC写的~

 前台Code

技术分享
 <div>
       请输入您的邮箱:<input type="text" id="email" /> <input type="button" value="获取验证码" id="getYZM" /><br/>
       请输入验证码:<input type="text" id="yzm"/>
    </div>
    <script src="~/Scripts/jquery-1.8.2.min.js"></script>
    <script>
        $("#getYZM").click(function () {
            var emailName = $("#email").val().trim();
            $.post(@Url.Action("SendYanZhengMa","Home"), { recEmail: emailName }, function (_data) {
                if (_data=="no") {
                    alert("发送失败!");
                } else {
                    $("#yzm").val(_data);
                }
            })
        });
    </script>
View Code

后台Code

技术分享
       public ActionResult Index()
        {
            return View();
        }
        [HttpPost]
        public ActionResult SendYanZhengMa(string recEmail)
        {
            string result = "no";
            try
            {
                //确定smtp服务器地址。实例化一个Smtp客户端
                System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient("smtp.yeah.net");
                //生成一个发送地址
                string strFrom = "techblog@yeah.net";              
                //构造一个发件人地址对象
                MailAddress from = new MailAddress(strFrom, "RYJ", Encoding.UTF8);//发送地址,发送人的名字
                //构造一个收件人地址对象
                MailAddress to = new MailAddress("2636922684@qq.com", "一明", Encoding.UTF8);//收件地址,收件人的名字

                //构造一个Email的Message对象
                MailMessage message = new MailMessage(from, to);

             
                //添加邮件主题和内容
                message.Subject = "YM互动登陆验证消息";
                message.SubjectEncoding = Encoding.UTF8;
                Random r=new Random();
                int n= r.Next(100000,999999);
                message.Body = "您的验证码是:"+n;
                message.BodyEncoding = Encoding.UTF8;

                //设置邮件的信息
                client.DeliveryMethod = SmtpDeliveryMethod.Network;
                message.BodyEncoding = System.Text.Encoding.UTF8;
                message.IsBodyHtml = false;

                //如果服务器支持安全连接,则将安全连接设为true。
                //gmail支持,163不支持,如果是gmail则一定要将其设为true               
                    client.EnableSsl = true;

                //设置用户名和密码。
                //string userState = message.Subject;
                client.UseDefaultCredentials = false;
                string username = "techblog";//发送邮件的用户名
                string passwd = "2436chao";//密码
                //用户登陆信息
                NetworkCredential myCredentials = new NetworkCredential(username, passwd);
                client.Credentials = myCredentials;
                //发送邮件
                client.Send(message);
                //提示发送成功
                result = n.ToString();
            }
            catch (Exception ex)
            {
                result = "no";
            }

            return Content(result);
        }
View Code

 

C#之发送邮件汇总

标签:archive   users   network   als   mail   and   else   str   邮箱   

原文地址:http://www.cnblogs.com/shuai7boy/p/5988589.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!