C#之发送邮件汇总

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

百度了几篇博客,各有千秋。最终采用了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>

后台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 = "[email protected]";
                //构造一个发件人地址对象
                MailAddress from = new MailAddress(strFrom, "RYJ", Encoding.UTF8);//发送地址,发送人的名字
                //构造一个收件人地址对象
                MailAddress to = new MailAddress("[email protected]", "一明", 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);
        }

时间: 2024-10-01 04:32:00

C#之发送邮件汇总的相关文章

【Selenium】【BugList10】smtp发送邮件问题汇总:550/535/554

[场景] 通过126邮箱向QQ邮箱发送HTML格式邮件 [代码1] from email.mime.text import MIMEText from email.header import Header import smtplib #发送邮件服务器 smtpserver = 'smtp.126.com' #邮箱账号/密码 user = '[email protected]' password = 'testpassword' #发件箱 sender = '[email protected]'

python发送邮件 大全汇总

https://blog.csdn.net/bmxwm/article/details/79007871 参考菜鸟教程发送只有文字的邮件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26    import smtplibfrom email.mime.text import MIMETextfrom email.header import Header  sender = '[email protected

常用的Java代码汇总

1. 字符串有整型的相互转换 Java 1 2 <strong>Stringa=String.valueOf(2);   //integer to numeric string inti=Integer.parseInt(a);//numeric string to an int </strong> 2. 向文件末尾添加内容 Java 1 2 3 4 5 6 7 8 9 10 11 <strong>BufferedWriter out=null; try{ out=ne

iOS手机功能汇总

开发中经常会调用手机功能,今天来汇总一下,若有不足欢迎大家指出,下面分别介绍如下功能 : 电话 短信 邮件 通讯录 定位 跳转应用 跳转App Store 打开其他文件 电话 调用电话有下图两种不同样式,相同的是,通话结束后均会返回你原界面1- 直接跳至拨号界面2- 先弹框提示,用户确认后再跳至拨号界面 直接跳至拨号界面 NSURL *url = [NSURL URLWithString:@"tel://10000000"]; [[UIApplication sharedApplica

发邮件的礼仪汇总---让优秀成为习惯

发邮件的礼仪汇总---让优秀成为习惯 一.关于主题 主题要提纲挈领,添加邮件主题是电子邮件和信笺的主要不同之处,在主题栏里用短短的几个字概括出整个邮件的内容,便于收件人权衡邮件的轻重缓急,分别处理. 1.一定不要空白标题,这是最失礼的. 2.标题要简短,不宜冗长,不要让outlook用…才能显示完你的标题. 3.最好写上来自**公司的邮件,以便对方一目了然又便于留存,时间可以不用注明,因为一般的邮箱会自动生成,写了反而累赘. 4. 标题要能真实反映文章的内容和重要性,切忌使用含义不清的标题,如

移动平台3G手机网站前端开发布局技巧汇总

移动平台3G手机网站前端开发布局技巧汇总 作者:前端开发-武方博   发布:2011-05-10 09:11   分类:移动开发   阅读:120,618 views   7条评论 您或许正在或准备参与一个WepApp项目,您或许正在Google搜索mobile development相关的文章,您或许是一名专业的WEB前端工程师,您或许想学习Mobile前端开发方面的技术,如果您被我说中了,呵呵那么这篇文章将为您带来意想不到的惊喜!当您看到这篇文章时,哥已经默认认为您是一名资深的WEB前端工程

一共81个,开源大数据处理工具汇总(下)

接上一部分:一共81个,开源大数据处理工具汇总(上),第二部分主要收集整理的内容主要有日志收集系统.消息系统.分布式服务.集群管理.RPC.基础设施.搜索引擎.Iaas和监控管理等大数据开源工具. 日志收集系统 一.Facebook Scribe 贡献者:Facebook 简介:Scribe是Facebook开源的日志收集系统,在Facebook内部已经得到大量的应用.它能够从各种日志源上收集日志,存储到一个中央存储系统(可以是NFS,分布式文件系统等)上,以便于进行集中统计分析处理.它为日志的

利用SQLServer数据库发送邮件

汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 这个应用案例很多,一般都是预警,比如异常连接的时候,或者数据库报错的时候.等等,,, 先回顾一下以前用C#发邮件的内容:http://www.cnblogs.com/dunitian/p/5682930.html 可能有些人看不太懂,这个是简单演示:https://github.com/dunitian/LoTCodeBase/blob/master/NetCode/0.知识拓展/01

Linux面试题汇总答案

转自:小女生的Linux技术~~~Linux面试题汇总答案~~ 一.填空题:1. 在Linux系统中,以 文件 方式访问设备 .2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统.3. Linux文件系统中每个文件用 i节点 来标识.4. 全部磁盘块由四个部分组成,分别为引导块 .专用块 . i节点表块 和数据存储块.5. 链接分为: 硬链接 和 符号链接 .6. 超级块包含了i节点表 和 空闲块表 等重要的文件系统信息.7. 某文件的权限为:d-rw-_r--_r