Esempio n. 1
0
 /// <summary>
 /// Tests the email settings.
 /// </summary>
 /// <param name="sender">The sender.</param>
 /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
 protected void TestEmailSettings_Click(object sender, EventArgs e)
 {
     try
     {
         if (!string.IsNullOrEmpty(HostEmail.Text))
         {
             Exception exRev = EasySender.SendEmail(HostEmail.Text, HostEmail.Text, SMTPUseSSL.Checked, SMTPServer.Text, int.Parse(SMTPPort.Text)
                                                    , SMTPEnableAuthentication.Checked, SMTPUsername.Text, SMTPPassword.Text, SMTPDomain.Text,
                                                    string.Format(GetLocalResourceObject("EmailConfigurationTestSubject").ToString(), "Test"), "<br/>" + DateTime.Now.ToString() + "<br/>", SMTPEmailFormat.SelectedValue == "2", null);
             if (exRev == null)
             {
                 lblEmail.Text      = GetLocalResourceObject("EmailConfigurationTestSuccess").ToString();
                 lblEmail.ForeColor = Color.Green;
             }
             else
             {
                 throw exRev;
             }
         }
         else
         {
             lblEmail.Text      = GetLocalResourceObject("MissingHostEmail").ToString();
             lblEmail.ForeColor = Color.Red;
         }
     }
     catch (Exception ex)
     {
         lblEmail.Text      = string.Format(GetLocalResourceObject("SeeErrorLog").ToString(), ex.Message);
         lblEmail.ForeColor = Color.Red;
         Log.Error(GetLocalResourceObject("ConfigurationTestError").ToString(), ex);
     }
 }
Esempio n. 2
0
        /// <summary>
        /// Sends the specified recipient email.
        /// </summary>
        /// <param name="recipientEmail">The recipient email.</param>
        /// <param name="message">The message.</param>
        /// <returns></returns>
        public async Task Send(string recipientEmail, MailMessage message, int?relatedIssueId)
        {
            bool allowReplyTo = HostSettingManager.Get <bool>(HostSettingNames.Pop3AllowReplyToEmail, false);

            message.To.Clear();
            message.To.Add(recipientEmail);

            if (allowReplyTo && relatedIssueId.HasValue)
            {
                int    at        = HostSettingManager.HostEmailAddress.IndexOf("@");
                string issueCode = string.Format("+iid-{0}", relatedIssueId.Value);
                message.From = new MailAddress(HostSettingManager.HostEmailAddress.Insert(at, issueCode), HostSettingManager.ApplicationTitle);
            }
            else
            {
                message.From = new MailAddress(HostSettingManager.HostEmailAddress, HostSettingManager.ApplicationTitle);
            }


            var smtpServer          = HostSettingManager.SmtpServer;
            var smtpPort            = int.Parse(HostSettingManager.Get(HostSettingNames.SMTPPort));
            var smtpAuthentictation = Convert.ToBoolean(HostSettingManager.Get(HostSettingNames.SMTPAuthentication));
            var smtpUseSSL          = Boolean.Parse(HostSettingManager.Get(HostSettingNames.SMTPUseSSL));

            // Only fetch the password if you need it
            var smtpUsername = string.Empty;
            var smtpPassword = string.Empty;
            var smtpDomain   = string.Empty;

            if (smtpAuthentictation)
            {
                smtpUsername = HostSettingManager.Get(HostSettingNames.SMTPUsername, string.Empty);
                smtpPassword = HostSettingManager.Get(HostSettingNames.SMTPPassword, string.Empty);
                smtpDomain   = HostSettingManager.Get(HostSettingNames.SMTPDomain, string.Empty);
            }
            await Task.Run(() =>
            {
                try
                {
                    Exception ex = EasySender.SendEmail(message.From.Address, message.To.ToString(),
                                                        smtpUseSSL, smtpServer, smtpPort,
                                                        smtpAuthentictation, smtpUsername, smtpPassword, smtpDomain, message.Subject, message.Body,
                                                        message.IsBodyHtml,
                                                        (s, e) =>
                    {
                        if (e.Error != null)
                        {
                            // log the error message
                            Log.Error(e.Error);
                        }
                    }
                                                        );
                    if (ex != null)
                    {
                        throw ex;
                    }
                }
                catch (Exception e)
                {
                    Log.Error(e);
                }
            });
        }