.net(C#)发送EMail

来源:互联网 发布:单片机4m晶振 串口 编辑:程序博客网 时间:2024/05/20 21:57

当工作审批流程(人事申请,审批,IT申请审批,出差申请审批)到达某种状态时,往往需要发送邮件通知给审批人或者申请人以提醒。本文利用C#完成了邮件自动发送的功能。

1.实体参数的定义,这里主要用到了申请人,审批人,以及审批状态等参数。

    public class EMailModel    {        //审批人姓名        public string ApprovalName { get; set; }        //申请人姓名        public string ApplyName { get; set; }        //审批人EMail        public string ApprovalEMail { get; set; }        //申请人EMail        public string ApplyEmail { get; set; }        //False表示审批,True表示完成        public bool State { get; set; }    }

2.邮件发送核心方法。以QQ邮箱和服务器做为例子。实际应用中,可根据情况进行设置。QQ邮箱必须设置开启SMTP服务与EnableSSL. 关于开启QQ邮箱SMTP服务,可登陆QQ邮箱,通过设置->帐户->开启服务来设置。

这里写图片描述

public bool sendEmail(EMailModel model)        {            string approvalMailBody = @"尊敬的{0},你好! 您的下属{1}的出差申请正在等待您的审批,请通过登陆我的审批中进行审批.谢谢!";            string finishMailBody = @"尊敬的{0},你好! 您的出差申请审批流程已完成。请通过登陆我的申请中进行查看.谢谢!";            bool result = true;            MailMessage myMail = new MailMessage();            MailAddress fromAddr = new MailAddress("zheng.luan@qq.com");            string toAddr = string.Empty;            string mailBody = string.Empty;            if (model.State)            {                toAddr = model.ApplyEmail;                string applyName = UtilityMethods.inputParamNullHandler(model.ApplyName);                mailBody = string.Format(finishMailBody, applyName);            }            else            {                toAddr = model.ApprovalEMail;                string approveName = UtilityMethods.inputParamNullHandler(model.ApprovalName);                string applyName = UtilityMethods.inputParamNullHandler(model.ApplyName);                mailBody = string.Format(approvalMailBody, approveName, applyName);            }            if (string.IsNullOrEmpty(toAddr))            {                result = false;            }            else            {                myMail.From = fromAddr;                myMail.To.Add(toAddr);                myMail.Subject = "出差申请审批提醒邮件";                myMail.Body = mailBody;                SmtpClient client = new SmtpClient("smtp.qq.com", 587);                client.EnableSsl = true;                client.Credentials = new NetworkCredential("zheng.luan@qq.com", "ppxtvvionwmdejih");                            try                {                    client.Send(myMail);                }                catch (Exception e)                {                    string msg = e.Message;                    result = false;                }            }            return result;        }

3.参数转换代码,主要是用在当用户名等非必要信息没有获取到时,设置默认Empty的值,不至于程序报错。

        public static string inputParamNullHandler(string input)        {            if (null != input)            {            }            else            {                input = string.Empty;            }            return input;        }
0 0
原创粉丝点击