Beispiel #1
0
        /// <summary> Send email according to this instance's email settings </summary>
        /// <param name="Email"> Complete information for this email </param>
        /// <param name="Error"> [OUT] Any error message encountered </param>
        /// <returns> TRUE if successfully queued, otherwise FALSE </returns>
        public static bool SendEmail(EmailInfo Email, out string Error)
        {
            Error = String.Empty;
            int replyId = -1;

            if (Email.ReplayToEmailID.HasValue)
            {
                replyId = Email.ReplayToEmailID.Value;
            }
            int userId = -1;

            if (Email.UserID.HasValue)
            {
                userId = Email.UserID.Value;
            }

            if (Engine_ApplicationCache_Gateway.Settings.Email.Setup.Method == Email_Method_Enum.MsSqlDatabaseMail)
            {
                try
                {
                    // Send database email
                    Engine_Database.Send_Database_Email(Email.RecipientsList, Email.Subject, Email.Body, Email.FromAddress, Email.ReplyTo, Email.isHTML, Email.isContactUs, replyId, userId);
                }
                catch (Exception ee)
                {
                    Error = ee.Message;
                    return(false);
                }
            }
            else
            {
                try
                {
                    string email_name    = Engine_ApplicationCache_Gateway.Settings.Email.Setup.DefaultFromDisplay;
                    string email_address = Engine_ApplicationCache_Gateway.Settings.Email.Setup.DefaultFromAddress;
                    if (!String.IsNullOrEmpty(Email.FromAddress))
                    {
                        string[] splitter = Email.FromAddress.Trim().Split("<>".ToCharArray());
                        if (splitter.Length == 2)
                        {
                            email_name    = splitter[0].Trim();
                            email_address = splitter[1].Trim();
                        }
                        else
                        {
                            email_address = Email.FromAddress;
                        }
                    }

                    MailMessage myMail = new MailMessage(Email.FromAddress, Email.RecipientsList)
                    {
                        Subject = Email.Subject,
                        Body    = Email.Body
                    };


                    if (!String.IsNullOrEmpty(email_name))
                    {
                        myMail.Sender = new MailAddress(email_address, email_name);
                    }

                    // Mail this
                    SmtpClient client = new SmtpClient(Engine_ApplicationCache_Gateway.Settings.Email.Setup.SmtpServer, Engine_ApplicationCache_Gateway.Settings.Email.Setup.SmtpPort);
                    client.Send(myMail);

                    // Log this in the database
                    Engine_Database.Log_Sent_Email(Email.FromAddress, Email.RecipientsList, Email.Subject, Email.Body, Email.isHTML, Email.isContactUs, -1);
                }
                catch (Exception ee)
                {
                    Error = ee.Message;
                    return(false);
                }
            }

            return(true);
        }