using System; 
using System.Collections.Generic; 
using System.Text; 
using System.Net.Mail; 
using System.IO;

/// <summary>
/// sendEmail 的摘要说明
/// </summary>
public static class sendEmail
{
    static sendEmail()
    {
        //
        // TODO: 在此处添加构造函数逻辑
        //
    }

/// <summary>
    /// 发送邮件程序
    /// </summary>
    /// <param name="from">发送人邮件地址</param>
    /// <param name="fromname">发送人显示名称</param>
    /// <param name="to">发送给谁(邮件地址)</param>
    /// <param name="subject">标题</param>
    /// <param name="body">内容</param>
    /// <param name="username">邮件登录名</param>
    /// <param name="password">邮件密码</param>
    /// <param name="server">邮件服务器 smtp服务器地址</param>
    /// <param name="fujian">附件</param>
    /// <returns>send ok</returns>
    /// 调用方法 SendMail("abc@126.com", "某某人", "cba@126.com", "你好", "我测试下邮件", "邮箱登录名", "邮箱密码", "smtp.126.com", "");
    /// 
    public static string SendMail(string from, string fromname, string to, string subject, string body, string username, string password, string server, string fujian)
    {
        try
        {
            //邮件发送类
            MailMessage mail = new MailMessage();
            //是谁发送的邮件
            mail.From = new MailAddress(from, fromname);
            //发送给谁
            mail.To.Add(to);
            //标题
            mail.Subject = subject;
            //内容编码
            mail.BodyEncoding = Encoding.Default;
            //发送优先级
            mail.Priority = MailPriority.High;
            //邮件内容
            mail.Body = body;
            //是否HTML形式发送
            mail.IsBodyHtml = true;
            //附件
            if (fujian.Length > 0)
            {
                mail.Attachments.Add(new Attachment(fujian));
            }
            //邮件服务器和端口
            SmtpClient smtp = new SmtpClient(server, 25);
            smtp.UseDefaultCredentials = true;
            //指定发送方式
            smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
            //指定登录名和密码
            smtp.Credentials = new System.Net.NetworkCredential(username, password);

//mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); //basic authentication 
            //mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", username); //set your username here 
            //mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", password); //set your password here

//超时时间
            smtp.EnableSsl = false;
            smtp.Timeout = 10000;
            smtp.Send(mail);
            return "成功发送请注意查收";
        }
        catch (Exception exp)
        {
            return exp.Message;
        }
    }

//读取指定URL地址的HTML,用来以后发送网页用
    public static string ScreenScrapeHtml(string url)
    {

//读取stream并且对于中文页面防止乱码
        StreamReader reader = new StreamReader(System.Net.WebRequest.Create(url).GetResponse().GetResponseStream(), System.Text.Encoding.UTF8);
        string str = reader.ReadToEnd();
        reader.Close();
        return str;
    }

///   <summary>
    ///   发送邮件
    ///   </summary>
    ///   <param   name= "server "> smtp地址 </param>
    ///   <param   name= "username "> 用户名 </param>
    ///   <param   name= "password "> 密码 </param>
    ///   <param   name= "from "> 发信人地址 </param>
    ///   <param   name= "to "> 收信人地址 </param>
    ///   <param   name= "subject "> 邮件标题 </param>
    ///   <param   name= "body "> 邮件正文 </param>
    ///   <param   name= "IsHtml "> 是否是HTML格式的邮件 </param>
    public static string  SendMail(string from, string to, string subject, string body, string server, string username, string password, bool IsHtml)
    {
        try
        {
            //设置SMTP 验证,端口默认为25,如果需要其他请修改
            SmtpClient mailClient = new SmtpClient(server, 25);

//指定如何发送电子邮件。
            //Network   电子邮件通过网络发送到   SMTP   服务器。    
            //PickupDirectoryFromIis   将电子邮件复制到挑选目录,然后通过本地   Internet   信息服务   (IIS)   传送。    
            //SpecifiedPickupDirectory 将电子邮件复制到 SmtpClient.PickupDirectoryLocation 属性指定的目录,然后由外部应用程序传送。

mailClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;

//创建邮件对象
            MailMessage mailMessage = new MailMessage(from, to, subject, body);

//定义邮件正文,主题的编码方式
            mailMessage.BodyEncoding = System.Text.Encoding.GetEncoding("gb2312");
            mailMessage.SubjectEncoding = System.Text.Encoding.GetEncoding("gb2312");
            //mailMessage.BodyEncoding = Encoding.Default;
            //获取或者设置一个值,该值表示电子邮件正文是否为HTML
            mailMessage.IsBodyHtml = IsHtml;

//指定邮件的优先级
            mailMessage.Priority = MailPriority.High;

//发件人身份验证,否则163   发不了
            //表示当前登陆用户的默认凭据进行身份验证,并且包含用户名密码
            mailClient.UseDefaultCredentials = true;
            mailClient.Credentials = new System.Net.NetworkCredential(username, password);

//发送
            mailClient.Send(mailMessage);
            return "发送成功";
        }   
        catch (Exception exp)
        {
            return exp.Message;
        }
    }

//发送plaintxt
    public static void SendText(string from, string to, string subject, string body, string server, string username, string password)
    {
        SendMail(from, to, subject, body, server, username, password, false);
    }

//发送HTML内容
    public static string  SendHtml(string from, string to, string subject, string body, string server, string username, string password)
    {
    return  SendMail(from, to, subject, body, server, username, password, true);
    }

//发送制定网页
    public static string  SendWebUrl(string from, string to, string subject, string server, string username, string password, string url)
    {
        //发送制定网页
       return  SendHtml(from, to, subject, ScreenScrapeHtml(url), server, username, password);

}
}

后台调用示例:

Response.Write("发送附件:"+sendEmail.SendMail("shaxiaozier@sohu.com", "某某人", "hou@sina.com", "你好", "我测试下邮件", "shaxiaozier@sohu.com", "*********", "smtp.sohu.com", Server.MapPath("~/fujian/wap.doc")));

Response.Write("电子邮件正文是HTML格式:" + sendEmail.SendMail("shaxiaozier@sohu.com", "hou@sina.com", "主题", "正文<br/>又一行", "smtp.sohu.com", "shaxiaozier", "*********", false));

Response.Write("电子邮件正文非HTML格式:" + sendEmail.SendMail("shaxiaozier@sohu.com", "hou@sina.com", "主题", "正文<br/>又一行", "smtp.sohu.com", "shaxiaozier", "*********", true));

Response.Write("发送制定网页:"+sendEmail.SendWebUrl("shaxiaozier@sohu.com", "hou@sina.com", "zhuti", "smtp.sohu.com", "shaxiaozier", "*********", "http://www.baidu.com"));

原文链接:http://blog.csdn.net/mypc2010/article/details/7836961

.net密码找回的更多相关文章

  1. linux忘记mysql密码找回方法

    linux忘记mysql教程密码找回方法 今天我们主要是讲一下关于linux忘记mysql密码处理方法,下面提供了5种linux忘记mysql密码找回方法哦.    方法一: # /etc/init. ...

  2. (转)asp.net实现忘记密码找回的代码

    1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.or ...

  3. C# Email邮件发送,功能是密码找回或者重置功能。

    原文:C# Email邮件发送,功能是密码找回或者重置功能. 最近根据公司需求,写个邮件发送.   这里面的传入的地址信息的参数都是经过加密的.  主要是保证用户信息的安全. 帮助类   using ...

  4. discuz密码找回:[1]忘记UCENTER创始人密码

    人们都是健忘的,何况每天的事情很多,有些站长更是兼职做,赚点外快而已,而ucenter更是不常用,所以忘记密码是在正常不过的事情,如果密码忘记怎么找回呢?方法有很多种,例如用comsenz tools ...

  5. Linux系统初学-第一课 虚拟机安装CentOS6.5以及Root密码找回

    Linux系统初学第一课 虚拟机安装CentOS6.5以及Root密码找回 虚拟机安装CentOS6.5 一.安装虚拟机 1-1.安装虚拟机VMware Station,新建虚拟机,选择典型配置. 1 ...

  6. WordPress忘记密码找回登录密码的四种行之有效的方法

    WordPress忘记密码找回登录密码的四种行之有效的方法 PS:20170214更新,感谢SuperDoge同学提供的方法,登入phpMyAdmin后,先从左边选自己的数据库,然后点上面的 SQL ...

  7. python开发mysql:mysql安装(windows)&密码找回&存储引擎简介&库表的增删改查

    一,mysql安装 下载地址 https://dev.mysql.com/downloads/file/?id=471342 解压后,将目录C:\mysql-5.7.19-winx64\bin添加到计 ...

  8. 轻松搭建CAS 5.x系列(5)-增加密码找回和密码修改功能

    概述说明 CAS内置了密码找回和密码修改的功能: 密码找回功能是,系统会吧密码重置的连接通过邮件或短信方式发送给用户,用户点击链接后就可以重置密码,cas还支持预留密码重置的问题,只有回答对了,才可以 ...

  9. Mysql数据库忘记密码找回方法

    Mysql数据库忘记密码找回 a 停止mysql服务 /etc/init.d/mysql stop b 使用--skip-grant-tables启动mysql,忽略授权登录验证 mysqld_saf ...

  10. MySQL root密码找回

    以MySQL多实例为例,演示找回MySQL root的密码 1.关闭mysql服务 [root@mysql ~]# mysqladmin -uroot -poldboy123 -S /data/330 ...

随机推荐

  1. C# 中的EventHandler实例详解-转

    //这里定义了一个水箱类 public class 水箱 {   //这是水箱的放水操作   public void 放水() { }   //这是水箱的属性   public double 体积; ...

  2. Mysql分片后分页排序拉取数据的方法

    高并发大流量的互联网架构,一般通过服务层来访问数据库,随着数据量的增大,数据库需要进行水平切分,分库后将数据分布到不同的数据库实例(甚至物理机器)上,以达到降低数据量,增加实例数的扩容目的. 一旦涉及 ...

  3. CodeForces 118C 【模拟】

    思路: 枚举0-9之间的数,然后判断. 然后一鼓作气打成了大模拟....我日啊... 心疼自己. #include <bits/stdc++.h> using namespace std; ...

  4. 洛谷P1083 借教室

    P1083 借教室 题目描述 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样. 面对海量租借 ...

  5. 浅析localstorage、sessionstorage

    原文链接:http://caibaojian.com/localstorage-sessionstorage.html 简介 html5 中的 web Storage 包括了两种存储方式:sessio ...

  6. Maven整合Eclipse进行Java项目开发

    一.Maven的配置 ①要求当前系统环境下配置了JAVA_HOME 在CMD命令行中输入:echo %JAVA_HOME% 如果能出来JDK的安装目录,说明我们配置了JAVA环境 ②将Maven的ZI ...

  7. 我的省选 Day -12

    Day -12 今天是三月份的最后一天,春天真的也就走过了1/3了呢. 昨晚做了个神秘而悲伤的梦.(这样子写下来会不会不太好.. 我梦见欢洛了. 那是在新校区的门口,我看见他,然后向他跑过去,他转身对 ...

  8. Python小世界:项目虚拟环境配置的N种方法

    前言 和其他大多数现代编程语言一样,Python对包和 模块的下载.存储以及管理有其自己的一套方法.但是当我们同时开发多个项目工程的时候,不同的项目会将第三方的包存放在相同的路径下.这就意味着,如果有 ...

  9. lynis检测

    https://www.cnblogs.com/ssooking/p/6034402.html Usage: lynis command [options] Command: audit audit ...

  10. Java基础笔记(十)—— 数组

    数组是具有相同类型的数据的集合,是一种引用数据类型,一般具有固定的长度,并且在内存中占据连续的空间. 数组声明:数据类型[ ] 数组名;             数据类型 数组名[ ]; 如:int[ ...