void WriteSendHistory(AppEmailData email, Guid emailId, SqlCmdHelper.SqlRuleMapResult mapSql) { AppEmailReceiver send = new AppEmailReceiver() { PrimaryMsgId = emailId, CreateTime = DateTime.Now, IsDelete = false, SendResult = false, SendTo = email.To, IsMailer = false }; send.SendTime = email.SendTime.HasValue ? email.SendTime.Value : DateTime.Now; send.DayInt = int.Parse(send.CreateTime.ToString("yyyyMMdd")); send.Id = Guid.NewGuid(); SqlCmdHelper help = new SqlCmdHelper() { SqlConnString = SqlConnString }; help.InsertSqlParam(send.GetInsertSql(), send, mapSql); if (email.Mailer != null) { //抄送人 send.IsMailer = true; for (int i = 0; i < email.Mailer.Count; i++) { send.Id = Guid.NewGuid(); send.SendTo = email.Mailer[i]; help.InsertSqlParam(send.GetInsertSql(), send, mapSql); } } }
public void sendEmail(AppEmailData emailDataObj) { try { AppDao appDaoObj = new AppDao(); AppEmailConfiguration emailConfigObj = appDaoObj.getEmailConfiguration(); SmtpClient SmtpServer = new SmtpClient(emailConfigObj.smtpHost); var mail = new System.Net.Mail.MailMessage(); mail.From = new MailAddress(emailConfigObj.fromAddress); mail.To.Add(emailDataObj.toAddress); if (emailDataObj.ccAddress != null && !emailDataObj.ccAddress.Equals("")) { mail.CC.Add(emailDataObj.ccAddress); } mail.Subject = emailDataObj.subject; mail.IsBodyHtml = true; string htmlBody; htmlBody = emailDataObj.bodyHtml; mail.Body = htmlBody; SmtpServer.UseDefaultCredentials = false; SmtpServer.Credentials = new System.Net.NetworkCredential(emailConfigObj.fromAddress, emailConfigObj.fromPassword); SmtpServer.EnableSsl = true; SmtpServer.Send(mail); } catch (Exception ex) { LogUtils.myLog.Info("Email while sending error : ", ex); } }
public JsonResult CallEmailService(SendEmailData email) { Common.Data.JsonData json = new Common.Data.JsonData() { Result = true }; //查询邮件账户 EmailSystemSetting setting = RefreshAppSetting.GetSystemEmailAccount(); IEmailDataService es = IocMvcFactoryHelper.GetInterface <IEmailDataService>(); es.LogPath = InitAppSetting.LogPath; AppEmailData data = new AppEmailData() { Body = email.Body, From = setting.EmailAccount, Mailer = email.Mailer, To = email.To, Subject = email.Subject }; if (!string.IsNullOrEmpty(email.SendTime)) { data.SendTime = Convert.ToDateTime(email.SendTime); } json.Success = es.SendEmail(setting, data, setting.Smtp); json.AttachData = email; return(Json(json)); }
public void LoopSendEmali(List <EmailAccount> accs, string subject) {//每日激活邮件账户 //查询邮件账户列表 string dir = LogPrepare.GetLogPath(); ELogType el = ELogType.EmailLog; string file = LogPrepare.GetLogName(el); IEmailDataService emailService = IocMvcFactoryHelper.GetInterface <IEmailDataService>(); foreach (var item in accs) { string time = DateTime.Now.ToString(Common.Data.CommonFormat.DateTimeFormat); string title = "[HrApp Everyday active]"; try { //使用邮件账户进行邮件发送 short smtp = item.Smtp; //拼接发送的邮件内容 EmailSystemSetting ess = new EmailSystemSetting() { EmailAccount = item.Account, EmailAuthortyCode = item.AuthortyCode, EmailHost = item.SmtpHost, EmailHostPort = EmailSystemSetting.GetHostPortSmtp(smtp) }; ess.Smtp = (EnumSMTP)smtp; StringBuilder body = new StringBuilder(); body.AppendLine(" Guid:<br/> "); for (int i = 0; i < 10; i++) { body.AppendLine(string.Format(" {0}<br/> ", Guid.NewGuid().ToString().ToUpper())); } string text = string.Format("{0} <br/> smtp= {1}<br/> time= {2} <br/>{3} ", title, item.Account, time, body.ToString()); string receive = InitAppSetting.Global.ReceiverInEmailActive; AppEmailData emailData = new AppEmailData() { EmailCreateTime = DateTime.Now, To = string.IsNullOrEmpty(receive) ? "*****@*****.**" : receive, Subject = subject, From = item.Account, Body = text }; emailService.SendEmail(ess, emailData, ess.Smtp); LoggerWriter.CreateLogFile(title + "[Success]" + time, dir, el, file, true); } catch (Exception ex) { title += ex.Message; LoggerWriter.CreateLogFile(title + "[Error]" + time, dir, el, file, true); } } }
protected void Application_Error(object sender, EventArgs e) { AppEmailData emailData = new AppEmailData(); GeneralUtils generalUtils = new GeneralUtils(); emailData.toAddress = MyConstants.SupportEmailAdd; emailData.subject = "ESABET Error Report - " + DateTime.Now.ToString(); emailData.bodyHtml = Request.Url.AbsoluteUri + "<br/><br/>" + "<a href='http://esabet.azurewebsites.net/log.txt'>View Log File: http://esabet.azurewebsites.net/log.txt </a>"; LogUtils.myLog.Error(emailData.subject); LogUtils.myLog.Error(emailData.bodyHtml); generalUtils.sendEmail(emailData); Exception err = Server.GetLastError(); if (err != null) { err = err.GetBaseException(); LogUtils.myLog.Error("Message : " + err.Message); LogUtils.myLog.Error("Source : " + err.Source); LogUtils.myLog.Error("InnerException : " + ((err.InnerException != null) ? err.InnerException.ToString() : "")); LogUtils.myLog.Error("StackTrace : " + err.StackTrace); LogUtils.myLog.Error("Full StackTrace : " + err.Message, err); LogUtils.myLog.Error("Message : " + err.Message); } }
public bool SaveWaitSendEmailData(AppEmailData email) { DateTime now = DateTime.Now; SqlCmdHelper.SqlRuleMapResult mapSql = new SqlCmdHelper.SqlRuleMapResult(); //数据存储到数据表 AppEmail ae = new AppEmail() { Body = email.Body, Subject = email.Subject, CreateTime = now, IsDelete = false, ParentId = new Guid(), SendBy = email.From, BodyType = (short)email.BodyType.GetHashCode() }; if (email.EmailId.Equals(new Guid())) { ae.Id = Guid.NewGuid(); } else { ae.Id = email.EmailId; } SqlCmdHelper help = new SqlCmdHelper() { SqlConnString = SqlConnString }; help.InsertSqlParam(ae.GetInsertSql(), ae, mapSql); if (!email.SendTime.HasValue) {//这条邮件数据是此刻进行发送 email.SendTime = now; } //进行定时计划存储 AppEmailPlan plan = new AppEmailPlan() { CreateTime = now, Id = Guid.NewGuid(), PrimaryMsgId = ae.Id, SendNumber = 0, SendTime = email.SendTime.Value }; if (plan.SendTime <= now) {//已发送 plan.SendNumber = 1; } help.InsertSqlParam(plan.GetInsertSql(), plan, mapSql); AppEmailReceiverPlan emailTo = new AppEmailReceiverPlan() { CreateTime = now, Id = Guid.NewGuid(), IsMailer = false, PrimaryMsgId = ae.Id, SendTo = email.To }; help.InsertSqlParam(emailTo.GetInsertSql(), emailTo, mapSql); List <AppEmailReceiverPlan> emailToColl = new List <AppEmailReceiverPlan>(); emailToColl.Add(emailTo); if (email.Mailer != null) { foreach (var item in email.Mailer) {//抄送人 AppEmailReceiverPlan emailers = new AppEmailReceiverPlan() { IsMailer = true, SendTo = item, PrimaryMsgId = ae.Id, Id = Guid.NewGuid(), CreateTime = now }; help.InsertSqlParam(emailers.GetInsertSql(), emailers, mapSql); //emailToColl.Add(emailers); } } if (!string.IsNullOrEmpty(string.Join("", mapSql.NoMapRule))) { //日志输出没有匹配的规则 return(false); } string sql = string.Join(";", mapSql.WaitExcuteSql); return(help.ExcuteNoQuery(sql, mapSql.SqlParams.ToArray()) == mapSql.WaitExcuteSql.Count); }
protected void b_Click(object sender, EventArgs e) { AppUser appUserObj = new AppUser(); appUserObj.username = usernameTb.Text; appUserObj.pwd = passwordTb.Text; String pwdConfirm = ConfirmPwdTb.Text; appUserObj.fullName = fullNameTb.Text; appUserObj.email = emailTb.Text; appUserObj.module = moduleTypeDdl.SelectedValue; appUserObj.userType = userTypeDdl.SelectedValue; appUserObj.course = courseDdl.SelectedValue; Boolean isError = false; if (!appUserObj.pwd.Equals(pwdConfirm)) { confirmPwdError.Text = "Confirm Password did not match."; isError = true; } DBUtils dbUtils1 = new DBUtils(); SqlDataReader attributeTypeReader1 = dbUtils1.readOperation("SELECT Username FROM Users"); while (attributeTypeReader1.Read()) { if (attributeTypeReader1[0].ToString().Equals(appUserObj.username)) { usernameError.Text = "Username already exists"; isError = true; break; } } dbUtils1.closeDBConnection(); if (isError) { return; } AppDao appDaoObj = new AppDao(); appUserObj.instructorId = appDaoObj.insertInstructor(appUserObj); appDaoObj.insertUser(appUserObj); GeneralUtils guObj = new GeneralUtils(); AppEmailData emailDataObj = new AppEmailData(); emailDataObj.toAddress = appUserObj.email; emailDataObj.ccAddress = (new AppDao()).getEmailConfiguration().fromAddress; emailDataObj.subject = "Expert System - Account Created"; emailDataObj.bodyHtml = "Dear " + appUserObj.fullName + "," + "<br/><br/>Your account has been successfully created on" + " <a href='http://esabet.azurewebsites.net'>Expert System for AEBT</a>" + " for the course of " + courseDdl.SelectedItem.Text + " with the following credentials:" + "<br/><b>Username: </b>" + appUserObj.username + "<br/><b>Password: </b>" + appUserObj.pwd + "<br/><br/>Please change your password after first login." + " If you are not the intended person kindly ignore this email." + "<br/><br/>Regards," + "<br/>Admin of Expert System for ABET"; guObj.sendEmail(emailDataObj); Response.Redirect("UserManagement.aspx"); }
private void TestEmail(string title) { string text = "使用代码进行邮箱测试功能"; string time = DateTime.Now.ToString(Common.Data.CommonFormat.DateTimeFormat); text += "<br/>邮件创建时间 :" + time; for (int i = 0; i < 10; i++) { text += string.Format("<br/> Guid{0}={1}", (i + 1), Guid.NewGuid().ToString().ToUpper()); } string logDir = LogPrepare.GetLogPath(); ELogType el = ELogType.EmailLog; string day = LogPrepare.GetLogName(el); try { Dictionary <string, string> emailSetting = InitAppSetting.AppSettingItemsInDB; string type = emailSetting[EAppSetting.SMTP.ToString()]; string sendBy = emailSetting[EAppSetting.SystemEmailSendBy.ToString()]; string authorCode = emailSetting[EAppSetting.SystemEmailSMPTAuthor.ToString()]; string smtpClient = emailSetting[EAppSetting.SMTPClient.ToString()]; EnumSMTP smtp; Enum.TryParse(type, out smtp); AppEmailData emailData = new AppEmailData() { EmailCreateTime = DateTime.Now, To = InitAppSetting.Global.ReceiverInEmailActive,// "*****@*****.**", Subject = title, From = sendBy, Body = text }; EmailSystemSetting setting = new Model.EmailSystemSetting() { EmailHostPort = smtp == EnumSMTP.NETS163? 25:587, EmailAuthortyCode = authorCode, EmailAccount = sendBy, EmailHost = smtpClient }; #region 直接发送,不存储【测试可用】 /* * EmailData email = new EmailData() * { * EmailTo =InitAppSetting.Global.ReceiverInEmailActive, * EmailSubject = title, * EmailBody = text, * CreateTime = DateTime.Now, * EmailFrom = sendBy * }; * EmailService es = new EmailService(smtpClient, sendBy, authorCode, 25, true); * es.SendEmailBy163(email); * */ #endregion IEmailDataService eds = IocMvcFactoryHelper.GetInterface <IEmailDataService>(); eds.SendEmail(setting, emailData, smtp); LoggerWriter.CreateLogFile(time + "\t[OK]进行邮件测试", logDir, el, day, true); } catch (Exception ex) { string msg = time + "\t[ Error]" + ex.Message; LoggerWriter.CreateLogFile(msg, logDir, el, day, true); } }
public bool SendEmail(EmailSystemSetting setting, AppEmailData email, EnumSMTP smtpType) { DateTime appTime = Domain.GlobalModel.AppRunData.RunTime;//程序启动时的时间 if (email.EmailCreateTime.Equals(new DateTime())) { email.EmailCreateTime = DateTime.Now; } //文件内容长度选择存储形式 1.邮件文本内容 2 邮件写入的文本相对路径 email.BodyType = EnumEmailBodyType.Body; email.EmailId = Guid.NewGuid(); if (email.Body.Length > 1024) {//写入到文本下 email.BodyType = EnumEmailBodyType.TextPath; string emailPath = LogPath + "\\" + ELogType.EmailBody.ToString(); string file = email.EmailId.ToString() + ".log"; LoggerWriter.CreateLogFile(email.Body, emailPath, ELogType.EmailBody, file); email.Body = emailPath + "\\" + file; } DateTime now = DateTime.Now; string logFile = now.ToString(Common.Data.CommonFormat.DateIntFormat) + ".log"; string mailTo = email.To + ";"; if (email.Mailer != null) { mailTo += string.Join(";", email.Mailer); } try { //将邮件内容进行存档 bool succ = emailDataDal.SaveWaitSendEmailData(email); logDal.WriteLog(ELogType.EmailLog, string.Format("email data into db ,email Account=【{0}】", email.From) , ELogType.EmailLog.ToString(), succ); //判断是否需要进行此刻邮件发送 if (email.SendTime.HasValue && email.SendTime.Value > DateTime.Now) {//定时发送 logDal.WriteLog(ELogType.EmailBody, string.Format("Save email to DB:【{0}】", mailTo) , ELogType.EmailBody.ToString(), true); return(true); } EmailService es = new EmailService(setting.EmailHost, setting.EmailAccount, setting.EmailAuthortyCode, setting.EmailHostPort, true) { LogPath = LogPath }; //开始进行邮件发送 switch (smtpType) { case EnumSMTP.QQ: es.SendEmail(email.Subject, email.Body, email.From, email.From, email.To, (email.Mailer == null ? null : email.Mailer.ToArray()), true, System.Net.Mail.MailPriority.High, null); break; case EnumSMTP.NETS163: es.SendEmailBy163(new EmailData() { CreateTime = email.EmailCreateTime, EmailBody = email.Body, EmailFrom = email.From, EmailSubject = email.Subject, EmailTo = email.To, Mailer = email.Mailer }); break; default: break; } logDal.WriteLog(ELogType.EmailBody, string.Format("Send email to user:【{0}】", mailTo) , ELogType.EmailBody.ToString(), true); //进行日志存储 if (WriteLog) { LoggerWriter.CreateLogFile(string.Format("send email 【Success】-{0} - {1}", now.ToString()), LogPath, ELogType.EmailLog, logFile, true); } return(true); } catch (Exception ex) { string msg = ex.Message; logDal.WriteLog(ELogType.EmailBody, string.Format("Send email to user:【{0}】\r\n error msg=【{1}】", mailTo, msg) , ELogType.EmailBody.ToString(), false); if (WriteLog) { LoggerWriter.CreateLogFile(string.Format("send email 【Error】 -{0}- msg: {}", now.ToString(), msg), LogPath, ELogType.EmailLog, logFile, true); } return(false); } }