发送邮件找回密码采用outlook的 pop和smtp方式、qq邮箱smtp
一、outlook的pop方式,并指定发送人邮箱地址:
需要引入dll:Microsoft.Office.Interop.Outlook
Outlook.Application olApp = new Outlook.Application();
NameSpace ns = olApp.GetNamespace("mapi");
ns.Logon(Missing.Value, Missing.Value, false, true);
Outlook.MailItem mailItem = (Outlook.MailItem)olApp.CreateItem(Outlook.OlItemType.olMailItem);
mailItem.To = Email;
mailItem.Subject = "密码找回";
mailItem.BodyFormat = Outlook.OlBodyFormat.olFormatHTML;
mailItem.HTMLBody = "验证码是: " + code + ",请在10分钟内进行验证。验证码提供给他人可能导致账号被盗,请勿泄露,谨防被骗。系统邮件请勿回复。"; ;
Outlook.Account account = GetAccountForEmailAddress(olApp, autolooksendemail);
mailItem.SendUsingAccount = account;
((Outlook._MailItem)mailItem).Send();
ns.Logoff();
mailItem = null;
ns = null;
olApp = null;
public Outlook.Account GetAccountForEmailAddress(Outlook.Application application, string smtpAddress)
{ // Loop over the Accounts collection of the current Outlook session.
Outlook.Accounts accounts = application.Session.Accounts; foreach (Outlook.Account account in accounts)
{
logger.Info("Outlook.Account:" + account.SmtpAddress);
// When the e-mail address matches, return the account.
if (account.SmtpAddress == smtpAddress)
{
return account;
}
}
throw new System.Exception(string.Format("No Account with SmtpAddress: {0} exists!", smtpAddress));
}
其中指定的邮箱autolooksendemail应该包含在内。若不在,则添加,步骤如下:
1、打开客户端

2、添加账户

不推荐此方式,因为用exchange方式不安全。
二、outlook的smtp方式:
需要引用System.Net.Mail.dll
SmtpClient smtpClient = new SmtpClient()
{
UseDefaultCredentials = false,
DeliveryMethod = SmtpDeliveryMethod.Network,
}; smtpClient.Credentials = new NetworkCredential(sendeaccount, autolooksendemailPwd); var message = new MailMessage
{
From = new MailAddress(autolooksendemail),
Sender = new MailAddress(autolooksendemail),
Subject = "密码找回",
IsBodyHtml = false
};
message.To.Add(Email); message.Body = "验证码是: " + code + ",请在10分钟内进行验证。验证码提供给他人可能导致账号被盗,请勿泄露,谨防被骗。系统邮件请勿回复。"; smtpClient.Send(message); message.Dispose();
smtpClient.Dispose();
三、qq邮箱的smtp方式:
需要引入System.Net.Mail.dll
SmtpClient client = new SmtpClient("smtp.qq.com"); //实例化一个SmtpClient类
client.UseDefaultCredentials = true;
MailMessage mail = new MailMessage(); //实例化一个邮件类
mail.From = new MailAddress("发件人邮箱地址"); //发件人邮箱地址
mail.To.Add(new MailAddress("收件人邮箱地址")); //收件人邮箱地址
mail.Subject = "密码找回"; //邮件标题
mail.SubjectEncoding = System.Text.Encoding.UTF8;
mail.Body = "密码找回内容"; //邮件内容
mail.BodyEncoding = System.Text.Encoding.UTF8;
client.EnableSsl = true; //使用安全加密连接
client.Credentials = new NetworkCredential(sendEmail, AuthorizationCode);//验证发件人身份(发件人邮箱,邮箱授权码);
client.Send(mail); //发送邮件
mail.Dispose();
mail = null;
client.Dispose();
client = null;
四、生成随机码:
public static string CreateRandomCode(int length) //生成由数字和大小写字母组成的验证码
{
string list = "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890";
//list中存放着验证码的元素
Random random = new Random();
string code = ""; //验证码
for (int i = 0; i < length; i++) //循环6次得到一个伪随机的六位数验证码
{
code += list[random.Next(0, list.Length - 1)];
}
return code;
}
随机码一定时间内有效,我采用的是redis。
五、1分钟后可再次发送邮箱随机码
var timer1 = 60;
//倒计时
function TimeDown() {
$("#timer1").html(timer1);
if (timer1 > 0) {
setTimeout(function () { TimeDown(); }, 1000);
} else if (timer1 <= 0) {
timer1 = 61;
$("倒计时显示部分").css("display", "block");
$("发送按钮显示部分").css("display", "none");
}
--timer1;
};
发送邮件找回密码采用outlook的 pop和smtp方式、qq邮箱smtp的更多相关文章
- CI框架使用PHPmailer发送邮件找回密码
之前用PHP+Mysql+jQuery结合ThinkPHP做了一个用户验证邮箱找回密码功能<ThinkPHP之PHP+Mysql+jQuery发送邮箱找回密码>,现在分享一下用CI框架结合 ...
- C#如何利用QQ邮箱SMTP发送邮件
public void SendEmail() { MailMessage msg = new MailMessage(); msg.To.Add("to@qq.com");//收 ...
- asp.net利用QQ邮箱发送邮件,关键在于开启pop并设置授权码为发送密码
public static bool SendEmail(string mailTo, string mailSubject, string mailContent) { ...
- Django 邮箱找回密码!!!!!!!!!!!!!!!!
1.大概流程. @首先在完善登陆页面,增加忘记密码的链接. @为了账户安全,需要对操作者进行验证,向邮箱发随机数验证! @在重置验证码页面,验证验证码是否匹配(验证成功跳转至更改密码也页面). @ 重 ...
- spring mvc下实现通过邮箱找回密码功能
1功能分析 通过spring mvc框架实现通过邮箱找回密码. 2 实现分析 主要是借助某个邮箱的pop3/smtp服务实现的邮件代发功能. 3 源码分析 3.1首先在用户表对应的javabean中加 ...
- ThinkPHP 中使用 PHPMailer 发送邮件 支持163和QQ邮箱等
[摘要]ThinkPHP是一个开源的PHP框架, 是为了简化企业级应用开发和敏捷WEB应用开发而诞生的.本文介绍ThinkPHP 中使用 PHPMailer 发送邮件. PHP是自带可以发送邮件的Ma ...
- PHP 利用QQ邮箱发送邮件「PHPMailer」
在 PHP 应用开发中,往往需要验证用户邮箱.发送消息通知,而使用 PHP 内置的 mail() 函数,则需要邮件系统的支持. 如果熟悉 IMAP/SMTP 协议,结合 Socket 功能就可以编写邮 ...
- TP5实现邮件发送(PHP 利用QQ邮箱发送邮件「PHPMailer」)
在 PHP 应用开发中,往往需要验证用户邮箱.发送消息通知,而使用 PHP 内置的 mail() 函数,则需要邮件系统的支持. 如果熟悉 IMAP/SMTP 协议,结合 Socket 功能就可以编写邮 ...
- Laravel5.2 发送邮件(smtp方式最简单的讲解!)-邮件部分
https://blog.csdn.net/wulove52/article/details/71172842 Laravel集成了SwiftMailer库进行邮件发送,邮件配置文件位于config/ ...
- AspNetCore-MVC实战系列(二)之通过绑定邮箱找回密码
AspNetCore - MVC实战系列目录 . 爱留图网站诞生 . AspNetCore - MVC实战系列(一)之Sqlserver表映射实体模型 . AspNetCore-MVC实战系列(二)之 ...
随机推荐
- 2022USACO-DEC-Silver
题目链接 T1.Barn Tree T2.Circular Barn T3.Range Reconstruction T1 下面均以\(1\)为根来进行分析. 算法思路: 首先,定义一个数组dis表示 ...
- Js生成图片验证码
上代码 /** * [使用说明] * 1.生成验证码 * 函数: * generateRandomCode( dom对象Id ); * 例: * generateRandomCode( 'id' ); ...
- Git使用记录 - 持续更新
本地生成 sshkey 打开git命令工具 cd ~/.ssh ssh-keygen -t rsa -C "实际的eamil地址" ··· // 一路回车,出现以下则说明成功 Yo ...
- Spring MVC的运行流程
Spring MVC的运行流程 摘要:本文档主要结合官方给出的Spring MVC流程图结合一个简单的Spring MVC实例,分析并介绍了Spring MVC的运行流程. 目录 Spring MVC ...
- 数据结构与算法 -> 大顶堆与小顶堆
一.大顶堆 大顶堆是一种数据结构,它是一颗完全二叉树,并且满足以下性质: 每个节点的值都大于或等于它的子节点的值 因此,大顶堆的根节点(也称为堆顶)总是最大的元素 二.小顶堆 小顶堆也是一种数据结构, ...
- 路由分发、名称空间、虚拟环境、视图层三板斧、JsonResponse对象、request对象获取文件、视图层FBV与CBV的源码剖析、模版层简介
今日内容详细 路由分发 django的每一个应用都可以有自己独立的路由层(urls.py)静态文件(static文件夹)模板层(templates文件夹) 基于这个特性多人开发项目就可以完全解 ...
- 记一下Go类型转换问题
数值类型间可以相互转换 int<->int64,uint8<->float32,uint64<->float64 字符类型转换也可以 string<-> ...
- Java 进阶P-6.6+P-7.1
接口设计模式 接口 接口是纯抽象类 所有的成员函数都是抽象函数 所有的成员变量都是public static final 接规定了长什么样,但是不管里面有什么 实现接口 类用extends,接口用im ...
- centos7连接WIFI
centos7图形化界面可以直接连接WIFI,命令行会稍麻烦一些 环境: 1.笔记本安装centos7,没有很大的流量,基本都是交互 2.桌子后面的线路太乱,想要省去一根网线 过程: 1.安装软件 y ...
- 【.NET 8】ASP.NET Core计划 - 支持更完善的AOT发布
.NET7.0刚发布不久,.NET社区开始了.NET8.0的开发,重心重新回到了新功能的迭代. 我们知道在.NET7.0中一个令人激动的特新就是支持了NativeAOT,我们可以通过NativeAOT ...