public override string GetMailBody(LibMailParam param, Dictionary <string, string[]> addressDic) { string html = string.Empty; string path = Path.Combine(EnvProvider.Default.MainPath, "Resource", "MailTpl", "ApproveMailTpl.html"); using (FileStream fs = new FileStream(path, FileMode.Open)) { using (StreamReader reader = new StreamReader(fs, Encoding.Default)) { html = reader.ReadToEnd(); } } html = html.Replace("@USER", addressDic[param.PersonId][0]); html = html.Replace("@DATE", DateTime.Now.ToShortDateString()); html = html.Replace("@TEXT", param.Content); //if (param.ExpandData.ContainsKey("@IMG")) //{ // string base64 = param.ExpandData["@IMG"]; // string imageName = string.Format("{0}-{1}.png", LibDateUtils.GetCurrentDateTime(), LibCommUtils.GetInternalId()); // string imgUrl = Path.Combine(".", "PublicData", "Mail", "Image", imageName); // using (FileStream fs = new FileStream(imgUrl, FileMode.Create)) // { // byte[] imageBytes = Convert.FromBase64String(base64); // fs.Write(imageBytes, 0, imageBytes.Length); // } // html.Replace("@IMG", imgUrl); //} string progId = param.ProgId.Replace('.', '_'); html = html.Replace("@LINK", string.Format("http://{0}:{1}/desk/{2}/{3}", EnvProvider.Default.LocalHostName, EnvProvider.Default.CurrentPort, progId, param.BillNo)); return(html); }
private static string GetMailBody(LibMailParam param, Dictionary <string, string[]> addressDic) { string html = string.Empty; LibMailTpl mailTpl = null; switch (param.MailKind) { case LibMailKind.Info: mailTpl = new LibInfoMailTpl(); break; case LibMailKind.Approve: mailTpl = new LibApproveMailTpl(); break; case LibMailKind.Warning: mailTpl = new LibWarningMailTpl(); break; case LibMailKind.Problem: mailTpl = new LibProblemMailTpl(); break; } html = mailTpl.GetMailBody(param, addressDic); return(html); }
protected override void AfterCommintData() { base.AfterCommintData(); if (!this.ManagerMessage.IsThrow) { List <AxCRL.Core.Mail.LibMailParam> list = new List <AxCRL.Core.Mail.LibMailParam>(); foreach (DataRow curRow in this.DataSet.Tables[0].Rows) { if (curRow.RowState == DataRowState.Modified) { if (LibSysUtils.ToBoolean(curRow["ISUSE"]) && !LibSysUtils.ToBoolean(curRow["ISUSE", DataRowVersion.Original])) { AxCRL.Core.Mail.LibMailParam param = new AxCRL.Core.Mail.LibMailParam(); param.Content = string.Format("您的账号 {0} 已开通。", curRow["USERID"]); param.MailKind = AxCRL.Core.Mail.LibMailKind.Info; param.Subject = "智慧工厂账号开通"; param.To = new List <string>() { LibSysUtils.ToString(curRow["PERSONID"]) }; list.Add(param); } } } if (list.Count > 0) { ThreadPool.QueueUserWorkItem(LibMailHelper.SendMail, list); } } }
public string RecoverPassword(string userId) { string error = string.Empty; if (string.Compare(userId, "admin", true) == 0) { error = "账户admin不允许重置密码"; return(error); } LibDataAccess dataAccess = new LibDataAccess(); string id = string.Empty, personId = string.Empty, email = string.Empty; using (IDataReader reader = dataAccess.ExecuteDataReader(string.Format("select A.USERID,A.PERSONID,B.MAIL from AXPUSER A inner join COMPERSON B on B.PERSONID=A.PERSONID where A.USERID={0}", LibStringBuilder.GetQuotString(userId)))) { if (reader.Read()) { id = LibSysUtils.ToString(reader[0]); personId = LibSysUtils.ToString(reader[1]); email = LibSysUtils.ToString(reader[2]); } } if (string.IsNullOrEmpty(id)) { error = "该账号未注册"; } else if (string.IsNullOrEmpty(email)) { error = "该账号未关联邮箱,请联系管理员"; } else { Random random = new Random(); string pw = string.Format("{0}{1}", userId, random.Next(1000, 9999)); dataAccess.ExecuteNonQuery(string.Format("update AXPUSER set USERPASSWORD={0} where USERID={1}", LibStringBuilder.GetQuotString(pw), LibStringBuilder.GetQuotString(userId))); List <AxCRL.Core.Mail.LibMailParam> list = new List <AxCRL.Core.Mail.LibMailParam>(); AxCRL.Core.Mail.LibMailParam param = new AxCRL.Core.Mail.LibMailParam(); param.Content = string.Format("您的账号 {0} 密码已重置。新密码为{1}", userId, pw); param.MailKind = AxCRL.Core.Mail.LibMailKind.Info; param.Subject = "智慧工厂账号密码重置"; param.To.Add(LibSysUtils.ToString(personId)); list.Add(param); ThreadPool.QueueUserWorkItem(LibMailHelper.SendMail, list); } return(error); }
public override string GetMailBody(LibMailParam param, Dictionary <string, string[]> addressDic) { string html = string.Empty; string path = Path.Combine(EnvProvider.Default.MainPath, "Resource", "MailTpl", "InfoMailTpl.html"); using (FileStream fs = new FileStream(path, FileMode.Open)) { using (StreamReader reader = new StreamReader(fs, Encoding.Default)) { html = reader.ReadToEnd(); } } html = html.Replace("@USER", string.IsNullOrEmpty(param.PersonId) ? string.Empty : addressDic[param.PersonId][0]); html = html.Replace("@DATE", DateTime.Now.ToShortDateString()); html = html.Replace("@TEXT", param.Content); html = html.Replace("@LINK", string.Format("http://{0}:{1}", EnvProvider.Default.LocalHostName, EnvProvider.Default.CurrentPort)); return(html); }
public override string GetMailBody(LibMailParam param, Dictionary <string, string[]> addressDic) { throw new NotImplementedException(); }
public abstract string GetMailBody(LibMailParam param, Dictionary <string, string[]> addressDic);
private static void SendMailCore(object paramObj) { LibMailParam param = (LibMailParam)paramObj as LibMailParam; try { string host = EnvProvider.Default.MailProvider.Host; if (string.IsNullOrEmpty(host)) { return; } //确定smtp服务器地址。实例化一个Smtp客户端 System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient(host); Dictionary <string, string[]> addressDic = GetMailAddress(param.PersonId, param.To, param.CC); //string[] sendInfo = addressDic[param.PersonId]; //构造一个Email的Message对象 MailMessage message = new MailMessage(); //message.From = new MailAddress(sendInfo[1], sendInfo[0], Encoding.UTF8); message.From = new MailAddress(EnvProvider.Default.MailProvider.MailSys, "", Encoding.UTF8); foreach (var item in param.To) { if (string.IsNullOrEmpty(item)) { continue; } if (item.CompareTo("System") == 0) { continue; } string[] info = addressDic[item]; if (string.IsNullOrEmpty(info[1])) { continue; } message.To.Add(new MailAddress(info[1], info[0], Encoding.UTF8)); } foreach (var item in param.CC) { if (item.CompareTo("System") == 0) { continue; } string[] info = addressDic[item]; if (string.IsNullOrEmpty(info[1])) { continue; } message.CC.Add(new MailAddress(info[1], info[0], Encoding.UTF8)); } if (message.To.Count == 0) { return; } //为 message 添加附件 foreach (string fileName in param.AttachmentList) { //判断文件是否存在 string fileFullPath = Path.Combine(EnvProvider.Default.MainPath, "Resource", "Public", "Mail", "Attachment", fileName); if (File.Exists(fileFullPath)) { //构造一个附件对象 Attachment attach = new Attachment(fileFullPath); //得到文件的信息 ContentDisposition disposition = attach.ContentDisposition; disposition.CreationDate = System.IO.File.GetCreationTime(fileFullPath); disposition.ModificationDate = System.IO.File.GetLastWriteTime(fileFullPath); disposition.ReadDate = System.IO.File.GetLastAccessTime(fileFullPath); //向邮件添加附件 message.Attachments.Add(attach); } } //添加邮件主题和内容 message.Subject = param.Subject; message.SubjectEncoding = Encoding.UTF8; //设置邮件的信息 client.DeliveryMethod = SmtpDeliveryMethod.Network; message.BodyEncoding = System.Text.Encoding.UTF8; message.IsBodyHtml = true; message.Body = GetMailBody(param, addressDic); //如果服务器支持安全连接,则将安全连接设为true。 //gmail支持,163不支持,如果是gmail则一定要将其设为true client.EnableSsl = false; //if (cmbBoxSMTP.SelectedText == "smpt.163.com") // client.EnableSsl = false; //else // client.EnableSsl = true; //设置用户名和密码。 //string userState = message.Subject; client.UseDefaultCredentials = false; string username = EnvProvider.Default.MailProvider.MailSys; string passwd = EnvProvider.Default.MailProvider.MailPwd; //用户登陆信息 NetworkCredential myCredentials = new NetworkCredential(username, passwd); client.Credentials = myCredentials; //发送邮件 client.Send(message); } catch { //throw; } }