private void btnTestMailSettings_Click(object sender, EventArgs e) { this.saveEmailSettings(); SMTPSetting EmailSettings; using (var Dbconnection = new MCDEntities()) { EmailSettings = (from a in Dbconnection.SMTPSettings select a).FirstOrDefault <SMTPSetting>(); }; lblCheckingConnection.Visible = true; picConnectionPassed.Visible = false; if (SmtpHelper.TestConnection(EmailSettings.SMTPHost, EmailSettings.PortNumber)) { lblCheckingConnection.Visible = false; picConnectionPassed.Visible = true; } else { lblCheckingConnection.Visible = false; picConnectionPassed.Visible = false; } }
public async Task UpdateConfiguration(SmtpConfiguration configuration) { PropertyInfo[] props = configuration.GetType().GetProperties(); foreach (var prop in props) { Config config = context.Configs.Where(x => x.Key == prop.Name).FirstOrDefault(); if (config == null) { config = new Config { Key = prop.Name, Value = (string)prop.GetValue(configuration) }; context.Configs.Add(config); } else { config.Value = (string)prop.GetValue(configuration); context.Configs.Update(config); } } bool connected = SmtpHelper.TestConnection(configuration.Host, int.Parse(configuration.Port)); if (!connected) { throw new FormMgrException("Smtp connection failed. Please enter a valid configuration."); } await context.SaveChangesAsync(); }
/// <summary> /// Run the health check. /// </summary> /// <param name="context">The context.</param> public void Test(ITestContext context) { var mailSettings = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~") .GetSectionGroup(@"system.net/mailSettings") as MailSettingsSectionGroup; try { if (!SmtpHelper.TestConnection(mailSettings)) { Assert.Fails(Labels.SmtpTestFailure); } } catch (Exception ex) { Assert.Fails(Labels.SmtpTestException, ex.Message); } }
private void ReadyButton_Clicked(object sender, EventArgs e) { BackgroundWorker checkWorker = new BackgroundWorker(); DoWorkEventHandler doWorkEvent = null; doWorkEvent = (s, ea) => { try { string address = ""; string name = ""; string login = ""; string password = ""; bool noPassword = false; string imapHost = ""; string imapPort = ""; bool imapUseSsl = false; string smtpHost = ""; string smtpPort = ""; bool smtpUseSsl = false; Dispatcher.Invoke(() => { loadingOverlay.Visibility = Visibility.Visible; address = AddressTextBox.Text; name = NameTextBox.Text; login = LoginTextBlock.Text; password = PasswordTextBlock.Text; noPassword = NoPasswordSaveCheckBox.Selected; imapHost = ImapHostTextBlock.Text; imapPort = ImapPortTextBlock.Text; imapUseSsl = ImapSslCheckBox.Selected; smtpHost = SmtpHostTextBlock.Text; smtpPort = SmtpPortTextBlock.Text; smtpUseSsl = SmtpSslCheckBox.Selected; }); if ( String.IsNullOrWhiteSpace(address) || (!noPassword && (String.IsNullOrWhiteSpace(login) || String.IsNullOrWhiteSpace(password))) || String.IsNullOrWhiteSpace(imapHost) || String.IsNullOrWhiteSpace(imapPort) || String.IsNullOrWhiteSpace(smtpHost) || String.IsNullOrWhiteSpace(smtpPort) ) { Dispatcher.Invoke(() => { loadingOverlay.Visibility = Visibility.Collapsed; ErrorTextBlock.Text = "Uzupełnij dane"; }); ea.Result = false; return; } Regex portRegex = new Regex("^[0-9]+$"); if (!portRegex.IsMatch(imapPort) || !portRegex.IsMatch(smtpPort) || !StringHelper.IsValidEmail(address)) { Dispatcher.Invoke(() => { loadingOverlay.Visibility = Visibility.Collapsed; ErrorTextBlock.Text = "Dane nie mają poprawnego formatu"; }); ea.Result = false; return; } ImapClient client; client = EmailHelper.ConnectToServer(imapHost, Convert.ToInt32(imapPort), imapUseSsl); if (client == null) { Dispatcher.Invoke(() => { loadingOverlay.Visibility = Visibility.Collapsed; ErrorTextBlock.Text = "Nie można połączyć się z serwerem poczty przychodzącej"; }); ea.Result = false; return; } if (!SmtpHelper.TestConnection(smtpHost, Convert.ToInt32(smtpPort))) { Dispatcher.Invoke(() => { loadingOverlay.Visibility = Visibility.Collapsed; ErrorTextBlock.Text = "Nie można połączyć się z serwerem poczty wychodzącej"; }); ea.Result = false; return; } if (!NoPasswordSaveCheckBox.Selected) { if (!EmailHelper.AuthenticateClient(client, login, password)) { Dispatcher.Invoke(() => { loadingOverlay.Visibility = Visibility.Collapsed; ErrorTextBlock.Text = "Login lub hasło są niepoprawne"; }); ea.Result = false; return; } ea.Result = true; } else { ea.Result = true; } } catch (Exception ex) { throw ex; } }; RunWorkerCompletedEventHandler completed = null; completed = (s, ea) => { loadingOverlay.Visibility = Visibility.Collapsed; if (Convert.ToBoolean(ea.Result)) { NewEmailAddressEventArgs eventArgs = new NewEmailAddressEventArgs() { Address = AddressTextBox.Text, Login = LoginTextBlock.Text, UseLoginPassword = !NoPasswordSaveCheckBox.Selected, Password = PasswordTextBlock.Text, ImapHost = ImapHostTextBlock.Text, ImapPort = Convert.ToInt32(ImapPortTextBlock.Text), ImapUseSsl = ImapSslCheckBox.Selected, SmtpHost = SmtpHostTextBlock.Text, SmtpPort = Convert.ToInt32(SmtpPortTextBlock.Text), SmtpUseSsl = SmtpSslCheckBox.Selected, Name = NameTextBox.Text }; ReadyButtonClicked?.Invoke(this, eventArgs); } checkWorker.DoWork -= doWorkEvent; checkWorker.RunWorkerCompleted -= completed; }; ErrorTextBlock.Text = ""; if (_parent.EmailClients != null) { if (_parent.EmailClients.Any(obj => obj.Address == AddressTextBox.Text)) { ErrorTextBlock.Text = "Adres e-mail już istnieje"; } else { checkWorker.DoWork += doWorkEvent; checkWorker.RunWorkerCompleted += completed; checkWorker.RunWorkerAsync(); } } }