Exemple #1
0
 protected void FinalizeMailing(MessageDetail messageCount, string mailerrorMessage)
 {
     EEmailLog.AddSentEmailLog(dbConn, messageCount.mailMessage.To.ToString(), messageCount.startTime, AppUtils.ServerDateTime(), messageCount.trialCount, mailerrorMessage);
     messageCount.mailMessage.Dispose();
     if (messageCount.deleteAttachment)
     {
         foreach (string attachmentFilePath in messageCount.attachmentList)
         {
             try
             {
                 System.IO.File.Delete(attachmentFilePath);
             }
             finally
             {
             }
         }
     }
     else
     {
     }
     pendingQueue--;
 }
Exemple #2
0
        //public bool SendEmail(string ToEmail, string FromEmail, string ToName, string FromName, string subject, string body, string attachmentFileName, bool DeleteAttachment)
        //{
        //    return SendEmail(ToEmail, FromEmail, ToName, FromName, subject, body, attachmentFileName, attachmentFileName, DeleteAttachment);
        //}

        public bool SendEmail(string ToEmail, string FromEmail, string ToName, string FromName, string subject, string body, string attachmentFileName, string ActualAttachmentFileName, bool DeleteAttachment)
        {
            if (smtpClient != null)
            {
                DateTime startTime = AppUtils.ServerDateTime();

                if (DefaultFromEmailAccount.Equals(string.Empty))
                {
                    string outgoingEmail = ESystemParameter.getParameter(dbConn, ESystemParameter.PARAM_CODE_SMTP_SMTP_OUTGOING_EMAIL_ADDRESS);
                    if (!string.IsNullOrEmpty(outgoingEmail))
                    {
                        FromEmail = outgoingEmail;
                        FromName  = string.Empty;
                    }
                }
                else
                {
                    FromEmail = DefaultFromEmailAccount;
                    FromName  = string.Empty;
                }

                MailMessage message = new MailMessage();
                if (!string.IsNullOrEmpty(ToEmail))
                {
                    message.From = new MailAddress(FromEmail, FromName);
                    string[] ToEmailList = ToEmail.Split(new char[] { ';' });
                    string[] ToNameList  = ToEmail.Split(new char[] { ';' });
                    if (ToNameList.Length != ToEmailList.Length)
                    {
                        message.To.Add(ToEmail);
                    }
                    else
                    {
                        for (int idx = 0; idx < ToEmailList.Length; idx++)
                        {
                            try
                            {
                                message.To.Add(new MailAddress(ToEmailList[idx], ToNameList[idx]));
                            }
                            catch (FormatException)
                            {
                                EEmailLog.AddSentEmailLog(dbConn, ToEmailList[idx], startTime, AppUtils.ServerDateTime(), 0, "Invalid E-mail format");
                            }
                        }
                    }
                    if (message.To.Count <= 0)
                    {
                        return(false);
                    }
                    message.Subject    = subject;
                    message.Body       = body;
                    message.IsBodyHtml = false;
                    ArrayList attachmentList = new ArrayList();
                    if (System.IO.File.Exists(attachmentFileName))
                    {
                        Attachment attachment = new Attachment(attachmentFileName);
                        attachment.Name = ActualAttachmentFileName;
                        message.Attachments.Add(attachment);
                        attachmentList.Add(attachmentFileName);
                    }

                    if (SendAsync)
                    {
                        MessageDetail messageDetail = new MessageDetail();
                        messageDetail.mailMessage      = message;
                        messageDetail.startTime        = startTime;
                        messageDetail.attachmentList   = attachmentList;
                        messageDetail.deleteAttachment = DeleteAttachment;
                        pendingQueue++;
                        SendAsyncMode(messageDetail);
                    }
                    else
                    {
                        smtpClient.Send(message);
                    }
                }
                return(true);
            }
            else
            {
                return(false);
            }
        }