//send async protected void sendMailAsync(EmailOut sendOutItem) { try { _smtpClient = new SmtpClient(); _smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; _smtpClient.Host = smtpServer; _smtpClient.Credentials = new System.Net.NetworkCredential(arEmailFromInfo[0] , arEmailFromInfo[1]); _smtpClient.Port = smtpPort; if (sslSecured== "yes") { _smtpClient.EnableSsl = true; } else { _smtpClient.EnableSsl = false; } _from = new MailAddress(arEmailFromInfo[0], "iBookStop"); MailAddress _to = new MailAddress(sendOutItem.EmailTo); MailMessage _mailMessage = new MailMessage(_from, _to); _mailMessage.Subject = sendOutItem.EmailSubject; _mailMessage.Body = sendOutItem.EmailBody; _mailMessage.BodyEncoding = System.Text.Encoding.UTF8; _mailMessage.IsBodyHtml = true; _mailMessage.Priority = MailPriority.Normal; ////attach files to email //if (session["attachFiles"] != null) //{ // List<URLInfo> attachFileLst = (List<URLInfo>)session["attachFiles"]; // foreach (var item in attachFileLst) // { // Attachment data = new Attachment(item.dir, System.Net.Mime.MediaTypeNames.Application.Octet); // _mailMessage.Attachments.Add(data); // } //} sendOutItem.CreateTime = DateTime.Now.ToString(); _smtpClient.SendAsync(_mailMessage, sendOutItem); _smtpClient.SendCompleted += new SendCompletedEventHandler(sendCompletedCallback); } catch (Exception ex) { sendOutItem.Status = 1; sendOutItem.Exception = ex.Message; } }
private void save2sentOutTable(EmailOut _model) { int _RowsEffect = 0; try { string cmdText = "EmailOut_Update"; SqlParameter[] p = { new SqlParameter("@Id", SqlDbType.Int, 4), new SqlParameter("@EmailFrom", SqlDbType.NVarChar, 250), new SqlParameter("@EmailTo", SqlDbType.NVarChar, 250), new SqlParameter("@EmailSubject", SqlDbType.NVarChar, 250), new SqlParameter("@EmailBody", SqlDbType.NText), new SqlParameter("@Status", SqlDbType.Int, 4), new SqlParameter("@Exception", SqlDbType.NVarChar, 250), new SqlParameter("@CreateBy", SqlDbType.NVarChar, 250) }; p[0].Value = _model.Id; p[0].Direction = ParameterDirection.InputOutput; p[1].Value = _model.EmailFrom; p[2].Value = _model.EmailTo; p[3].Value = _model.EmailSubject; p[4].Value = _model.EmailBody; p[5].Value = _model.Status; p[6].Value = _model.Exception; p[7].Value = _model.CreateBy; int rowEffect= db.ExcuteCommandReturnInt(cmdText, CommandType.StoredProcedure, p); _RowsEffect = (int)p[0].Value; } catch (Exception ex) { PTSLog.Error(ex.Message); } }
//send sync protected void sendMail(EmailOut snd) { try { MailAddress _to = new MailAddress(snd.EmailTo); MailMessage _mailMessage = new MailMessage(_from, _to); _mailMessage.Subject = snd.EmailSubject; _mailMessage.Body = snd.EmailBody; _mailMessage.IsBodyHtml = true; _mailMessage.Priority = MailPriority.Normal; _smtpClient.Send(_mailMessage); snd.Status = 0; //success snd.UpdateTime = DateTime.Now.ToString(); } catch (SmtpFailedRecipientsException ex) { snd.Status = 1; //fail snd.Exception = ex.Message; //PTSLog.Error(ex.Message); } catch (SmtpFailedRecipientException ex) { snd.Status = 1; //fail snd.Exception = ex.Message; //PTSLog.Error(ex.Message); } catch (SmtpException ex) { snd.Status = 1; //fail snd.Exception = ex.Message; } catch (Exception ex) { snd.Status = 1; //fail snd.Exception = ex.Message; } }