/// <inheritdoc cref="IMailboxValidator.ValidateSynchronization"/> public CredentialsValidationInfo ValidateSynchronization(Mailbox mailbox) { var answer = new CredentialsValidationInfo { IsValid = true }; try { var credentials = new MailCredentials { UserName = mailbox.Login, UserPassword = mailbox.Password, SenderEmailAddress = mailbox.SenderEmailAddress, Host = mailbox.GetServerAddress(), Port = mailbox.GetServerPort(), UseSsl = mailbox.UseSsl, StartTls = mailbox.StartTls }; var imapClient = ClassFactory.Get <IImapClient>("OldEmailIntegration", new ConstructorArgument("credentials", credentials), new ConstructorArgument("errorMessages", new Terrasoft.Mail.ImapErrorMessages()), new ConstructorArgument("userConnection", UserConnection), new ConstructorArgument("login", true)); } catch (ImapException exception) { answer.IsValid = false; answer.Message = ConnectToServerCaption + exception.Message; } return(answer); }
/// <inheritdoc cref="IMailboxValidator.ValidateSynchronization"/> public CredentialsValidationInfo ValidateSynchronization(Mailbox mailbox) { var answer = new CredentialsValidationInfo() { IsValid = true }; var credentials = mailbox.ConvertToSynchronizationCredentials(UserConnection); ServicePointManager.ServerCertificateValidationCallback += ValidateRemoteCertificate; _ignoreSslWarnings = (bool)Terrasoft.Core.Configuration.SysSettings.GetValue(UserConnection, "IgnoreExchangeSSLWarnings"); try { var service = _exchangeUtility.CreateExchangeService(UserConnection, credentials, credentials.SenderEmailAddress); Exchange.NameResolutionCollection resolutions = service.ResolveName(credentials.SenderEmailAddress); var mailboxName = string.Empty; if (resolutions.Any()) { Exchange.EmailAddress mailboxAddress = resolutions.First().Mailbox; mailboxName = mailboxAddress.Name; } answer.Data = JsonConvert.SerializeObject(new { MailboxName = mailboxName }); } catch (Exception exception) { answer.IsValid = false; answer.Message = ConnectToServerCaption + exception.Message; } finally { ServicePointManager.ServerCertificateValidationCallback -= ValidateRemoteCertificate; } return(answer); }
public CredentialsValidationInfo IsServerValid(Guid id, string userName, string userPassword, bool enableSync, bool sendEmail, string senderEmailAddress) { var mailServerService = ClassFactory.Get <IMailServerService>(new ConstructorArgument("uc", UserConnection)); var mailServer = mailServerService.GetServer(id); if (mailServer == null) { return(new CredentialsValidationInfo() { IsValid = false, Message = GetMailServerDoesNotExistLczValue() }); } var mailbox = new Mailbox(senderEmailAddress, mailServer); mailbox.SetCredentials(userName, userPassword); mailbox.SetAllowSynchronization(enableSync); mailbox.SetAllowEmailSend(sendEmail); try { CredentialsValidationInfo validationInfo = mailbox.Validate(UserConnection); validationInfo.Message = string.Empty; return(validationInfo); } catch (Exception exception) { return(GetCredentialsValidationErrorInfo(exception, senderEmailAddress)); } }
/// <summary> /// Returns <see cref="CredentialsValidationInfo"/> instance. /// </summary> /// <param name="exception"><see cref="Exception"/> instance.</param> /// <param name="senderEmailAddress"><see cref="MailboxSyncSettings"/> instance address.</param> /// <returns><see cref="CredentialsValidationInfo"/> instance.</returns> private CredentialsValidationInfo GetCredentialsValidationErrorInfo(Exception exception, string senderEmailAddress) { var validationInfo = new CredentialsValidationInfo() { IsValid = false }; string exceptionClassName = exception.GetType().ToString(); string exceptionMessage = exception.Message; SynchronizationErrorHelper helper = SynchronizationErrorHelper.GetInstance(UserConnection); Entity message = helper.GetExceptionMessage(exceptionClassName, exceptionMessage); if (message != null) { validationInfo.Message = string.Format(message.GetTypedColumnValue <string>("UserMessage"), senderEmailAddress); validationInfo.Data = message.GetTypedColumnValue <string>("Action"); } return(validationInfo); }
/// <inheritdoc cref="IMailboxValidator.ValidateSynchronization"/> public CredentialsValidationInfo ValidateSynchronization(Mailbox mailbox) { var answer = new CredentialsValidationInfo { IsValid = true }; try { var imapClient = new ImapClient(new MailCredentials { UserName = mailbox.Login, UserPassword = mailbox.Password, SenderEmailAddress = mailbox.SenderEmailAddress, Host = mailbox.GetServerAddress(), Port = mailbox.GetServerPort(), UseSsl = mailbox.UseSsl }, MailSynchronizer.GetImapErrorMessages(UserConnection), UserConnection, true); } catch (ImapException exception) { answer.IsValid = false; answer.Message = ConnectToServerCaption + exception.Message; } return(answer); }