3.项目应用:https://github.com/dunitian/LoTCodeBase/tree/master/NetCode/3.常用技能/07.Email/2.EmailAPI
其实项目里面基本上是不用他附件功能的,比如你注册的时候发一个邮件给你来激活,你敏感操作的时候给你一个提示(比如异地登陆或者修改密码)
简单封装了一个api,一般每个项目里面都有这个发邮件的功能,很多公司把这些诸如上传,发邮件,短信通知的功能都封装成api,用的时候调用一下就可以了
效果图就不贴了,和上面差不多,就是没上传附件了
#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:见原文链接
如果没有账号,我提供几个测试账号:
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