最近根据公司需求,写个邮件发送。   这里面的传入的地址信息的参数都是经过加密的。  主要是保证用户信息的安全。

帮助类

 

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Configuration;
  4 using System.IO;
  5 using System.Linq;
  6 using System.Net.Mail;
  7 using System.Text;
  8 using System.Web;
  9
 10 namespace CalslNum.Helper
 11 {
 12     /// <summary>
 13     ///发送邮件类
 14     /// </summary>
 15     public class MailService
 16     {
 17         /// <summary>
 18         /// 发送邮件程序调用方法 SendMail("abc@126.com", "某某人", "cba@126.com", "你好", "我测试下邮件", "邮箱登录名", "邮箱密码", "smtp.126.com", true,);
 19         /// </summary>
 20         /// <param name="from">发送人邮件地址</param>
 21         /// <param name="fromname">发送人显示名称</param>
 22         /// <param name="to">发送给谁(邮件地址)</param>
 23         /// <param name="subject">标题</param>
 24         /// <param name="body">内容</param>
 25         /// <param name="username">邮件登录名</param>
 26         /// <param name="password">邮件密码</param>
 27         /// <param name="server">邮件服务器 smtp服务器地址</param>
 28         /// <param   name= "IsHtml "> 是否是HTML格式的邮件 </param>
 29         /// <returns>send ok</returns>
 30         public static bool SendMail(string from, string fromname, string to, string subject, string body, string server, string username, string password, bool IsHtml)
 31         {
 32             //邮件发送类
 33             MailMessage mail = new MailMessage();
 34             try
 35             {
 36                 //是谁发送的邮件
 37                 mail.From = new MailAddress(from, fromname);
 38                 //发送给谁
 39                 mail.To.Add(to);
 40                 //标题
 41                 mail.Subject = subject;
 42                 //内容编码
 43                 mail.BodyEncoding = Encoding.Default;
 44                 //发送优先级
 45                 mail.Priority = MailPriority.High;
 46                 //邮件内容
 47                 mail.Body = body;
 48                 //是否HTML形式发送
 49                 mail.IsBodyHtml = IsHtml;
 50                 //邮件服务器和端口
 51                 SmtpClient smtp = new SmtpClient(server, 25);
 52                 smtp.UseDefaultCredentials = true;
 53                 //指定发送方式
 54                 smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
 55                 //发件人身份验证,否则163   发不了
 56                 smtp.UseDefaultCredentials = true;
 57                 //指定登录名和密码
 58                 smtp.Credentials = new System.Net.NetworkCredential(username, password);
 59                 //超时时间
 60                 smtp.EnableSsl = false;
 61                 smtp.Timeout = 10000;
 62                 smtp.Send(mail);
 63                 return true;
 64             }
 65             catch (Exception)
 66             {
 67                 return false;
 68             }
 69             finally
 70             {
 71                 mail.Dispose();
 72             }
 73         }
 74
 75         //读取指定URL地址的HTML,用来以后发送网页用
 76         public static string ScreenScrapeHtml(string url)
 77         {
 78             //读取stream并且对于中文页面防止乱码
 79             StreamReader reader = new StreamReader(System.Net.WebRequest.Create(url).GetResponse().GetResponseStream(), System.Text.Encoding.UTF8);
 80             string str = reader.ReadToEnd();
 81             reader.Close();
 82             return str;
 83         }
 84
 85         //发送plaintxt
 86         public static bool SendText(string from, string fromname, string to, string subject, string body, string server, string username, string password)
 87         {
 88             return SendMail(from, fromname, to, subject, body, server, username, password, false);
 89         }
 90
 91         //发送HTML内容
 92         public static bool SendHtml(string from, string fromname, string to, string subject, string body, string server, string username, string password)
 93         {
 94             return SendMail(from, fromname, to, subject, body, server, username, password, true);
 95         }
 96
 97         //发送制定网页
 98         public static bool SendWebUrl(string from, string fromname, string to, string subject, string server, string username, string password, string url)
 99         {
100             //发送制定网页
101             return SendHtml(from, fromname, to, subject, ScreenScrapeHtml(url), server, username, password);
102
103         }
104         //默认发送格式
105         public static bool SendEmailDefault(string ToEmail,string f_username,string f_pass,string f_times)
106         {
107             StringBuilder MailContent = new StringBuilder();
108             MailContent.Append("亲爱的×××会员:<br/>");
109             MailContent.Append("    您好!你于");
110             MailContent.Append(DateTime.Now.ToString("yyyy-MM-dd HH:MM:ss"));
111             MailContent.Append("通过<a href='#'>×××</a>管理中心审请找回密码。<br/>");
112             MailContent.Append("   为了安全起见,请用户点击以下链接重设个人密码:<br/><br/>");
113             string url = "http://www.×××.×××/SignIn/Rest?u=" + f_username + "&s=" + f_pass + "&t=" + f_times; 114 MailContent.Append("<a href='" + url + "'>" + url + "</a><br/><br/>"); 115 MailContent.Append(" (如果无法点击该URL链接地址,请将它复制并粘帖到浏览器的地址输入框,然后单击回车即可。)"); 116 return SendHtml(ConfigurationManager.AppSettings["EmailName"].ToString(), "会员管理中心", ToEmail, "×××找回密码", MailContent.ToString(), ConfigurationManager.AppSettings["EmailService"].ToString(), ConfigurationManager.AppSettings["EmailName"].ToString(), ConfigurationManager.AppSettings["EmailPass"].ToString()); //这是从webconfig中自己配置的。 117 } 118 } 119 }
webconfig配置信息

1  <add key="EmailName" value="××××@163.com"/>
2  <add key="EmailPass" value="××××"/>
3  <add key="EmailService" value="smtp.163.com"/>
4
5 //说明: 这里面的"EmailService"得与你自己设置邮箱的smtp/POP3/...服务要相同, 大部分是根据@后面的进行配置。我是用163邮箱配置的。 可以根据自己需要自己配置。


后台调用的方法
 1  public ActionResult SendEmail(string EmailName)
 2         {
 3             EmailName = Helper.FI_DesTools.DesDecrypt(EmailName);
 4             if (!Regex.IsMatch(EmailName, @"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"))
 5             {
 6                 return Content("0");
 7             }
 8             string f_username = "";
 9             string f_pass = "";
10             string f_times = Helper.FI_DesTools.DesEncrypt(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
11             List<user> list = (from a in users where a.emailaddress == EmailName select a).ToList();
12             if (list.Count > 0)
13             {
14                 f_username = Helper.FI_DesTools.DesEncrypt(list[0].×××);
15                 f_pass = Helper.FI_DesTools.DesEncrypt(list[0].×××);
16
17                 bool flag = Helper.MailService.SendEmailDefault(EmailName, “×××”,“×××”, “×××”);  //这里面的参数根据自己需求自己定,最好进行加密
18                 if (flag)
19                 {
20                     return Content("true");
21                 }
22                 else
23                 {
24                     return Content("false");
25                 }
26             }
27             else {
28                 return Content("false");
29             }
30         }

发送完邮件效果图如下:

 

转载于:https://www.cnblogs.com/dakai620/p/4210889.html

C# Email邮件发送,功能是密码找回或者重置功能。相关推荐

  1. android javamail获取邮件太多太慢_java 实现 email 邮件发送最简单优雅的方式(网易 163 为例)

    如何使用IMAP服务? 首先介绍一些邮件发送的基础知识,如果你已经知道可以跳过. 直接到 Email 邮件发送实现的部分. IMAP是什么? IMAP,即Internet Message Access ...

  2. Bella Email邮件发送模板

    简介: Bella Email邮件发送模板是一款HTML5网站模板.aspku提示:本模板调用到谷歌字体库,可能会出现页面打开比较缓慢. 下载地址: http://www.bytepan.com/X3 ...

  3. SpringBoot整合Email 邮件发送

    文章目录 一.准备 二.邮件发送需要的配置 获取163邮箱授权码 获取QQ邮箱授权码 YML配置 三.代码编写 普通邮件发送 HTML邮件发送 含静态资源邮件发送 带附件邮件发送 SpringBoot ...

  4. Juniper 210 密码清不掉_苹果id密码忘了怎么办?苹果Apple ID密码找回、重置方法...

    以上就是"苹果id密码忘了怎么办?苹果Apple ID密码找回.重置方法"的全部内容了,希望能对大家有所帮助哦. 苹果id密码忘了怎么办?AppleID是iOS设备的核心灵魂之一, ...

  5. 【Python 应用篇】Email 邮件发送

    一.简单邮件发送 '''程序描述: 该脚本程序,用于完成简单的邮件发送功能 从文本文件中,提取内容,并发送给指定邮箱 ''' '''作者 = xxxxx ''' '''日期 = 2022.05.10 ...

  6. Email邮件发送设置 工具开发整理(网易邮箱、Mailgun为例) 下篇

    Email邮件设置(网易邮箱.Mailgun)  下篇 说明:STMP服务邮件发送工具类,其中包括文本发送.html发送.附件发送. 1.maven pom 配置 <dependency> ...

  7. Email邮件发送设置 工具开发整理(网易邮箱、Mailgun为例) 上篇

    Email邮件设置   工具开发整理(网易邮箱.Mailgun为例) 上篇 说明:Email邮件 国内国外设置 以网易邮箱和Mailgun为例,并开发工具类. 一.国内 网易邮箱设置  1.设置STM ...

  8. java email邮件发送465

    为什么使用465端口呢: 因为阿里云服务器以安全为由将25端口给封了,无法使用25号端口发送邮件,所以只有使用465端口啦. 实现java发送邮件的过程大体有以下几步: 1. 准备一个properti ...

  9. SpringBoot发送Email邮件-发送多人HTML邮件

    1.创建项目 当然也可以直接在pom文件加入依赖 <dependency><groupId>org.springframework.boot</groupId>&l ...

最新文章

  1. rancher2.0安装mysql_高可用rancher集群搭建
  2. Spring配置文件详解三:Spring声明式事务管理
  3. tcp/ip详解--环回接口
  4. 学习MSCKF笔记——真实状态、标称状态、误差状态
  5. CyberArk:被忽略的特权账号管理已进入蓝海
  6. 类支付宝微信密码输入框
  7. redis内存知识点
  8. 超级终端secureCRT-下载及使用
  9. 确定权重的方法-主成分分析
  10. mysql添加字段 说明_MYSQL数据库MSSQL 添加字段说明
  11. SQLMap——Tamper学习
  12. Python 玩转数据 8 - Pandas Indexing and Slicing
  13. 顺丰科技架构升级之路
  14. “多源异构”和“异构同源”定义区分详解
  15. Allegro_理解通孔焊盘
  16. OpenOffice 文件转PDF,实现文件预览
  17. tkinter GUI编程
  18. 自上而下还是自下而上
  19. 大数据面试演讲稿 离线数仓实时分析
  20. Windows上如何手动安装Perl模块(ActivePerl)

热门文章

  1. vmware esxi 查看网卡、Raid卡驱动
  2. 如何动态修改windows下的host文件
  3. lamp整合三连发(2)
  4. ubuntu下安装与卸载软件方法
  5. Java进阶06 容器
  6. 现实世界的Windows Azure:采访圣地亚哥公共安全小组的技术经理Adrian Gonzalez
  7. JAVA的两个FTP包的比较
  8. [导入]MsAjax Lib- Array.insert 函数
  9. CTOR在区块熵编码中的优点
  10. es6之扩展运算符...