前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Email系列(QQ邮箱 + 含附件的邮箱案例 + 项目实战)下

Email系列(QQ邮箱 + 含附件的邮箱案例 + 项目实战)下

作者头像
逸鹏
发布2018-04-10 15:43:15
1.3K0
发布2018-04-10 15:43:15
举报
文章被收录于专栏:逸鹏说道逸鹏说道

3.项目应用:https://github.com/dunitian/LoTCodeBase/tree/master/NetCode/3.常用技能/07.Email/2.EmailAPI

其实项目里面基本上是不用他附件功能的,比如你注册的时候发一个邮件给你来激活,你敏感操作的时候给你一个提示(比如异地登陆或者修改密码)

简单封装了一个api,一般每个项目里面都有这个发邮件的功能,很多公司把这些诸如上传,发邮件,短信通知的功能都封装成api,用的时候调用一下就可以了

效果图就不贴了,和上面差不多,就是没上传附件了

代码语言:javascript
复制
#region 发邮件
 /// <summary>
 /// 发邮件
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 [CrossSite]
 public async Task<string> Post([FromUri]MailModel model)
 {
 var obj = new AjaxOption<object>();
 
 #region 校验系列
 if (model == null)
 {
 obj.Msg = "内容不能为空";
 }
 
 if (string.IsNullOrWhiteSpace(model.MailSubject))
 {
 obj.Msg = "邮件主题不能为空";
 }
 
 if (string.IsNullOrWhiteSpace(model.MailContent))
 {
 obj.Msg = "邮件内容不能为空";
 }
 
 #region 收件人邮箱
 if (model.MailToList != null)
 {
 foreach (var item in model.MailToList)
 {
 if (!item.IsEmail())
 {
 model.MailToList.Remove(item);
 }
 }
 }
 else
 {
 obj.Msg = "收件人邮箱不能为空";
 }
 
 //这个一定要加
 if (model.MailToList.Count == 0)
 {
 obj.Msg = "收件人邮箱不能为空";
 }
 #endregion
 
 if (model.MailCCList.ExistsData())
 {
 foreach (var item in model.MailCCList)
 {
 if (!item.IsEmail())
 {
 model.MailCCList.Remove(item);
 }
 }
 }
 #endregion
 
 //内容解码
 model.MailContent = System.Web.HttpUtility.UrlDecode(model.MailContent);
 
 if (obj.Msg.IsNullOrWhiteSpace())
 obj.Status = await EmailHelper.SendAsync(model);
 
 return obj.ObjectToJson();
 }
 #endregion
<!DOCTYPE html>
<html>
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title>邮件系列</title>
 <meta charset="utf-8" />
 <link href="//cdn.bootcss.com/wangeditor/2.1.10/css/wangEditor.min.css" rel="stylesheet" />
 <link href="//cdn.bootcss.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
 <div class="rows">
 <div class="form-horizontal">
 <!--收件人邮箱-->
 <div class="form-group">
 <br />
 <label class="col-sm-2 control-label">收件邮箱:</label>
 <div class="col-sm-6">
 <input type="text" class="form-control" id="mailTo" placeholder="请输入收件人邮箱...">
 </div>
 </div>
 <!--收件人邮箱-->
 <div class="form-group">
 <br />
 <label class="col-sm-2 control-label">抄送邮箱:</label>
 <div class="col-sm-6">
 <input type="text" class="form-control" id="mailCC" placeholder="请输入抄送人邮箱...">
 </div>
 </div>
 <!--标题-->
 <div class="form-group">
 <br />
 <label class="col-sm-2 control-label">主题名称:</label>
 <div class="col-sm-6">
 <input type="text" class="form-control" id="mailSubject" placeholder="请输入邮箱主题名称...">
 </div>
 </div>
 <!--编辑器-->
 <div class="form-group">
 <br />
 <label class="col-sm-2 control-label">正文内容:</label>
 <div class="col-sm-6">
 <div id="edit" style="min-height:20em"></div>
 </div>
 </div>
 <!--表单提交-->
 <div class="form-group">
 <br />
 <label class="col-sm-2 control-label"></label>
 <div class="col-sm-6">
 <button id="btn" class="btn btn-success form-control">发送邮件</button>
 </div>
 </div>
 </div>
 </div>
 <div id="msg"></div>
 <script src="//cdn.bootcss.com/jquery/1.10.2/jquery.min.js"></script>
 <script src="//cdn.bootcss.com/bootstrap/3.3.6/js/bootstrap.min.js" async></script>
 <script src="//cdn.bootcss.com/wangeditor/2.1.10/js/wangEditor.min.js"></script>
 <script type="text/javascript">
 // 为页面所有的editor配置全局的密钥
 //wangEditor.config.mapAk = 'xxxxxxxxxxxxxx';
 
 wangEditor.config.printLog = false;     //阻止输出log
 var editor = new wangEditor('edit');
 editor.create();
 
 $('#btn').click(function () {
 // 获取编辑器区域完整html代码
 var mailTo = $('#mailTo').val();
 var mailCC = $('#mailCC').val();
 var mailSubject = $('#mailSubject').val();
 var mailContent = escape(editor.$txt.html());
 if (mailTo.length < 1 || mailCC.length < 1 || mailSubject.length < 1 || mailContent.leng < 1) {
 $('#msg').html('<h2>除附件外,不能为空!</h2>');
 return false;
 }
 $.post('/api/email?MailSubject=' + mailSubject + '&MailContent=' + mailContent + '&MailToList=' + mailTo + '&MailCCList=' + mailCC, {}, function (data) {
 data = JSON.parse(data);
 if (data.Status) {
 $('#msg').html('<h2>发送成功!</h2>');
 } else {
 $('#msg').html('<h2>' + data.Msg + '</h2>');
 }
 })
 });
 </script>
</body>
</html>

EmailHelper:见原文链接

如果没有账号,我提供几个测试账号:

代码语言:javascript
复制
mail.host = smtp.163.com
mail.username = php_tester@163.com
mail.password = php1234
mail.smtp.from = php_tester@163.com
mail.smtp.auth = true
——————————————————
mail.host=smtp.yeah.net
mail.port=25
mail.smtp.auth=true
mail.smtp.timeout=25000
mail.username=techblog@yeah.net
mail.password=2436chao
——————————————————
mail.server.host=smtp.yeah.net
mail.server.post=25
mail.server.validate=true
mail.server.username=zmc330563778
mail.server.password=zmc586858
mail.server.fromaddress=zmc330563778@yeah.net
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-07-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 我为Net狂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
短信
腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档