コード例 #1
0
ファイル: MailHelper.cs プロジェクト: wddpct/SimpleTask
 private static void SetMailProvider(string mailAddress)
 {
     mailAddress = mailAddress.ToLower();
     if (mailAddress.Contains("@163.com"))
     {
         _emaillProvider = EmailProvider.网易163;
     }
     else if (mailAddress.Contains("@gmail.com"))
     {
         _emaillProvider = EmailProvider.谷歌;
     }
     else if (mailAddress.Contains("@skywalk.cn"))
     {
         _emaillProvider = EmailProvider.天行;
     }
     else if (mailAddress.Contains("@qq.com"))
     {
         _emaillProvider = EmailProvider.腾讯;
     }
     else if (mailAddress.Contains("@126.com"))
     {
         _emaillProvider = EmailProvider.网易126;
     }
     else if (mailAddress.Contains("@sina.cn"))
     {
         _emaillProvider = EmailProvider.新浪;
     }
     else
     {
         _emaillProvider = EmailProvider.未知;
     }
 }
コード例 #2
0
        public void Should_Provide_Methods_Polymorphically()
        {
            var provider = new EmailProvider() + new OfflineProvider();
            var id       = P <IEmailFeature>(provider).Email("Hello");

            Assert.AreEqual(1, id);
            id = provider.P <IEmailFeature>().Email("Hello");
            Assert.AreEqual(2, id);
            id = provider.P <IEmailFeature>().Email("Hello");
            Assert.AreEqual(1, id);
        }
コード例 #3
0
        public void Update(EmailProviderViewModel emailProviderVM)
        {
            var EmailProvider = new EmailProvider
            {
                EmailProviderId   = emailProviderVM.EmailProviderId,
                EmailProviderName = emailProviderVM.EmailProviderName
            };

            unitOfWork.EmailProviderRepository.Update(EmailProvider);
            unitOfWork.Save();
        }
コード例 #4
0
        public async Task SendEmailAsync(string toAddress, string body)
        {
            var imagePaths = new Dictionary <string, string>();

            if (HttpContext.Current != null)
            {
                imagePaths.Add("myImageID", HttpContext.Current.Server.MapPath("~/Content/Images/LogManLogo.jpg"));
            }

            await EmailProvider.SendAsync("", toAddress, "Logman Alert!", body, imagePaths);
        }
コード例 #5
0
        public void PublishToSubscriber(Message pMessage)
        {
            EmailMessage mEmailMessage = pMessage as EmailMessage;

            EmailProvider.SendEmail(
                MessageTypeConverter.Instance.Convert <
                    global::Common.Model.EmailMessage,
                    global::EmailService.Business.Entities.EmailMessage>(mEmailMessage)

                );
        }
コード例 #6
0
        protected void ClearLdapInfoButton_Click(object sender, EventArgs e)
        {
            UserContext user = UserContext.Current;

            if (user != null)
            {
                LoginProvider.Current.UpdateUserLdapInfo(user.OrganizationId, this.UserId, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, Guid.Empty, string.Empty);
                EmailProvider.DeleteEmails(this.UserId, string.Empty);
                EditForm.DataBind();
            }
        }
コード例 #7
0
        public async Task CreateAsync(EmailProvider entity, CancellationToken ct)
        {
            entity.Version++;
            await _dbContext.EmailProviders.InsertOneAsync(entity, new InsertOneOptions(), ct);

            if (entity.DomainEvents.Count > 0)
            {
                await Task.WhenAll(entity.DomainEvents.Select(x => _mediator.Publish(x, ct)));

                entity.ClearDomainEvents();
            }
        }
コード例 #8
0
ファイル: Contact.cs プロジェクト: ghjigan/Subtext
        private void OnSendButtonClick(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                var contactMessage = new FeedbackItem(FeedbackType.ContactPage)
                {
                    Author    = tbName.Text,
                    Email     = tbEmail.Text,
                    Body      = tbMessage.Text,
                    Title     = string.Format("CONTACT: {0}", tbSubject.Text),
                    IpAddress = HttpHelper.GetUserIpAddress(SubtextContext.HttpContext)
                };


                if (SendContactMessageToFeedback || String.IsNullOrEmpty(Blog.Email))
                {
                    CreateCommentWithContactMessage(contactMessage);
                }
                else
                {
                    try
                    {
                        var emailService = new EmailService(EmailProvider.Instance(), new EmbeddedTemplateEngine(),
                                                            SubtextContext);
                        emailService.EmailCommentToBlogAuthor(contactMessage);
                    }
                    catch (Exception)
                    {
                        lblMessage.Text =
                            "Your message could not be sent, most likely due to a problem with the mail server.";
                        return;
                    }
                }
                if (!Context.User.IsAdministrator())
                {
                    lblMessage.Text = "Your message was sent.";
                }
                else
                {
                    lblMessage.Text = "Message submitted successfully, but no email was sent because you&#8217;re logged in as administrator.";
                }
                SwapWithLabel(tbName);
                SwapWithLabel(tbEmail);
                SwapWithLabel(tbMessage);
                SwapWithLabel(tbSubject);
                if (captcha != null)
                {
                    Controls.Remove(captcha);
                }
                Controls.Remove(btnSend);
            }
        }
コード例 #9
0
        public void Should_Broadcast_Methods()
        {
            var master = new EmailProvider();
            var mirror = new EmailProvider();
            var backup = new EmailProvider();
            var email  = master + mirror + backup;
            var id     = P <IEmailFeature>(email.Broadcast()).Email("Hello");

            Assert.AreEqual(1, id);
            Assert.AreEqual(1, master.Resolve <EmailHandler>().Count);
            Assert.AreEqual(1, mirror.Resolve <EmailHandler>().Count);
            Assert.AreEqual(1, backup.Resolve <EmailHandler>().Count);
        }
コード例 #10
0
        public void Initialize_WithNullPort_UsesDefaultPort(EmailProvider provider)
        {
            // arrange
            var configValue = new NameValueCollection();

            configValue["port"] = null;

            // act
            provider.Initialize("providerTest", configValue);

            // assert
            Assert.AreEqual(25, provider.Port);
        }
コード例 #11
0
        public JsonResult EnviarMail(int EvaluacionPromocionID, int EvaluacionMedicionID, bool EsEvaluado)
        {
            //Se obtiene el listado de alumnos para el envío de correo
            List <PromocionMedicionCicloParticipante> listadoParticipantes = DAPromocionMedicionCicloParticipante.Listado(EvaluacionPromocionID, EvaluacionMedicionID);

            string evaluado       = "&idEvaluado=0&Externo=False";
            string link           = string.Empty;
            string rutaCorreo     = EsEvaluado ? "~/Areas/Administrador/Views/Link/EmailExterno.cshtml" : "~/Areas/Administrador/Views/Link/Email.cshtml";
            int    participanteID = 0;
            string msjeExito      = "Se enviaron los correos a cada participante";

            try
            {
                foreach (PromocionMedicionCicloParticipante participante in listadoParticipantes)
                {
                    using (EmailProvider provider = EmailFactory.GetEmailProvider(
                               EmailFactory.Providers.Default,
                               ConfigurationManager.AppSettings["EnvioMailCompromisoAlumno"]))
                    {
                        if (EsEvaluado)
                        {
                            participanteID = (int)DAParticipante.ObtenerParticipante(Convert.ToInt32(ConfigurationManager.AppSettings["IdTipoDocumentoDefault"].ToString()), participante.ParticipanteNroDoc).ParticipanteID;
                            evaluado       = "&idEvaluado=" + participanteID + "&Externo=true";
                        }

                        link = "http://msa.esan.edu.pe/Alumno/Registro/Formulario?idPromocion=" + EvaluacionPromocionID.ToString() +
                               "&idMedicion=" + EvaluacionMedicionID.ToString() + evaluado;
                        ViewBag.LinkEval  = link;
                        ViewBag.LinkVideo = participante.DireccionVideo;

                        provider.AgregarDireccion(TipoDirecciones.To, ConfigurationManager.AppSettings["EsPrueba"] == "1" ? ConfigurationManager.AppSettings["CorreoPrueba"] : participante.ParticipanteNroDoc + ConfigurationManager.AppSettings["DominioCorreoEnvio"]);

                        provider.Enviar(
                            HttpUtility.HtmlDecode(
                                General.RenderPartialViewToString(this,
                                                                  rutaCorreo
                                                                  , ViewBag))
                            , true
                            , System.Net.Mail.MailPriority.Normal);
                    }
                }
            }
            catch
            {
                msjeExito = "A ocurrido un error al enviar el correo.";
            }



            return(Json(new { exito = msjeExito }, JsonRequestBehavior.AllowGet));
        }
コード例 #12
0
ファイル: EmailService.cs プロジェクト: ghjigan/Subtext
        public void EmailCommentToBlogAuthor(FeedbackItem comment)
        {
            if (String.IsNullOrEmpty(Blog.Email) ||
                comment.FeedbackType == FeedbackType.PingTrack ||
                Context.User.IsAdministrator())
            {
                return;
            }

            string fromEmail = comment.Email;

            if (String.IsNullOrEmpty(fromEmail))
            {
                fromEmail = null;
            }

            var commentForTemplate = new
            {
                blog    = Blog,
                comment = new
                {
                    author    = comment.Author,
                    title     = comment.Title,
                    source    = Url.FeedbackUrl(comment).ToFullyQualifiedUrl(Blog),
                    email     = fromEmail ?? "none given",
                    authorUrl = comment.SourceUrl,
                    ip        = comment.IpAddress,
                    // we're sending plain text email by default, but body includes <br />s for crlf
                    body =
                        (comment.Body ?? string.Empty).Replace("<br />", Environment.NewLine).Replace("&lt;br /&gt;",
                                                                                                      Environment.
                                                                                                      NewLine)
                },
                spamFlag = comment.FlaggedAsSpam ? "Spam Flagged " : ""
            };

            ITextTemplate template = TemplateEngine.GetTemplate("CommentReceived");
            string        message  = template.Format(commentForTemplate);
            string        subject  = String.Format(CultureInfo.InvariantCulture, Resources.Email_CommentVia, comment.Title,
                                                   Blog.Title);

            if (comment.FlaggedAsSpam)
            {
                subject = "[SPAM Flagged] " + subject;
            }
            string from = EmailProvider.UseCommentersEmailAsFromAddress
                              ? (fromEmail ?? EmailProvider.AdminEmail)
                              : EmailProvider.AdminEmail;

            EmailProvider.Send(Blog.Email, from, subject, message);
        }
コード例 #13
0
ファイル: LoginPage.aspx.cs プロジェクト: stev1309/practica_I
        protected async void btnRecuperarContrasenia_Click(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(txtEmail.Text))
            {
                TBLUSUARIOS usuXCorreo = LogicaUsuarios.buscarCorreoExistente(txtEmail.Text);

                bool existeCorreo = !usuXCorreo.EMAIL_USUARIO.Equals("");

                if (existeCorreo)
                {
                    string codigo = GenerateNewRandom();

                    LogicaCodigos.guardarCodigo(usuXCorreo.ID_USUARIO, codigo);
                    LogicaUsuarios.cambiarEstadoRecuperacion(usuXCorreo);

                    string subject    = "Recuperación de contraseña";
                    string htmlString = @"
                          <html>
	                          <body>
	                              <h3>Estimad@ "     + usuXCorreo.NOMBRE_USUARIO + @"</h3>
                                  <p><i>Pasos para la recuperación de contraseña</i></p>
                                  <p>Tu usuario es: <b style='font-size: 20px;'>" + usuXCorreo.USU_USUARIO + @"</b></p>
	                              <p>Ingresa el siguiente codigo: </p>
                                  </br>
                                  <code style='font-size: 20px;'>" + codigo.ToString() + @"</code >
                                  </br>
	                              <p>El código deberás ingresarlo en el siguiente enlace: </p>
                                  </br>
                                  <a href = 'https://localhost:44305/loginTemplates/RecuperarPage.aspx' target = '_blank'>https://localhost:44305/loginTemplates/RecuperarPage.aspx</a>
                                  </br>                                  
                                  <p>En caso de no poder ingresar a la direcion, ingrese al Login del sistema e ingrese su usuario y cualquier contraseña. Le redireccionará automaticamente a la recuperacion de contraseña.</p>
	                          </body>
	                      </html>"    ;

                    EmailProvider ep = new EmailProvider(subject, htmlString, txtEmail.Text);

                    await ep.SendEmailAsync();

                    mostrarToast("Correo Enviado", "El correo ha sido enviado a: " + txtEmail.Text + ". Revise su correo y siga las instrucciones para recuperar sus credenciales.", "Success", 6000);
                    Limpiar();
                }
                else
                {
                    mostrarToast("Correo Inexistente", "El correo provisto no está registrado", "Error");
                }
            }
            else
            {
                mostrarToast("Error", "Esta vacio", "Error");
            }
        }
コード例 #14
0
        private static SmtpConfigValues ChooseOutgoingServer(EmailProvider provider, string emailAddress)
        {
            SmtpConfigValues returnVal = null;

            int            maxPort      = provider.OutgoingServers.Max(srv => srv.Port);
            OutgoingServer chosenServer = provider.OutgoingServers.Find(srv => srv.Port == maxPort);

            if (chosenServer != null)
            {
                returnVal = MapOutgoingServer(chosenServer, emailAddress);
            }

            return(returnVal);
        }
コード例 #15
0
        public string pingBack(string sourceURI, string targetURI)
        {
            if (!Blog.TrackbacksEnabled)
            {
                return("Pingbacks are not enabled for this site.");
            }

            string pageTitle;

            // GetPostIDFromUrl returns the postID
            int?id = SubtextContext.RequestContext.GetIdFromRequest();

            if (id == null)
            {
                throw new XmlRpcFaultException(33, Resources.XmlRcpFault_DidNotLinkToPermalink);
            }

            Uri sourceUrl = sourceURI.ParseUri();
            Uri targetUrl = targetURI.ParseUri();

            // does the sourceURI actually contain the permalink ?
            if (sourceUrl == null || targetUrl == null ||
                !Verifier.SourceContainsTarget(sourceUrl, targetUrl, out pageTitle))
            {
                throw new XmlRpcFaultException(17, Resources.XmlRcpFault_InvalidLink);
            }

            //PTR = Pingback - TrackBack - Referral
            var trackback = new Trackback(id.Value, HtmlHelper.SafeFormat(pageTitle, SubtextContext.HttpContext.Server),
                                          new Uri(sourceURI), string.Empty,
                                          HtmlHelper.SafeFormat(pageTitle, SubtextContext.HttpContext.Server),
                                          Blog.TimeZone.Now);
            ICommentSpamService feedbackService = null;

            if (Blog.FeedbackSpamServiceEnabled)
            {
                feedbackService = new AkismetSpamService(Blog.FeedbackSpamServiceKey, Blog, null, Url);
            }
            var commentService = new CommentService(SubtextContext, new CommentFilter(SubtextContext, feedbackService));

            commentService.Create(trackback, true /*runFilters*/);

            //TODO: Create this using IoC container
            var emailService = new EmailService(EmailProvider.Instance(), new EmbeddedTemplateEngine(), SubtextContext);

            emailService.EmailCommentToBlogAuthor(trackback);

            return(String.Format(CultureInfo.InvariantCulture, Resources.XmlRpcMessage_ThanksForThePingback, sourceURI));
        }
コード例 #16
0
        private void InitializeProviders()
        {
            MailerMock              = new Mock <IMailer>();
            LoggerMock              = new Mock <ILogger>();
            DateTimeProvider        = new DateTimeProvider();
            EmailProvider           = new EmailProvider(MailerMock.Object);
            SimpleTokenProvider     = new SimpleTokenProvider(TimeSpan.FromDays(30), HealthyJuicesConstants.LOCAL_ACCESS_TOKEN_SECRET);
            CurrentUserProviderMock = new Mock <ICurrentUserProvider>();

            ServiceCollection.AddTransient(x => MailerMock.Object);
            ServiceCollection.AddTransient(x => LoggerMock.Object);
            ServiceCollection.AddTransient(x => DateTimeProvider);
            ServiceCollection.AddTransient(x => EmailProvider);
            ServiceCollection.AddTransient(x => SimpleTokenProvider);
        }
コード例 #17
0
        public IActionResult CreateReset([FromBody] LoginCredentials creds, [FromServices] EmailProvider email)
        {
            if (accounts.Include(a => a.ResetToken).Find(new EmailAddress(creds.Email), out var account))
            {
                account.ResetToken = new ResetToken();
                account.ResetToken.CreateIds();
                account.ResetToken.Expiration = DateTime.UtcNow.AddHours(24);

                accounts.Update(account);

                email.Send(Emails.PasswordReset, account);
            }

            return(Ok());
        }
コード例 #18
0
        public void SendIsCalledIfEmailIsValid()
        {
            var     mockSender = new FakeEmailSender();
            var     sut        = new EmailProvider(emailSender: mockSender);
            dynamic testEmail  = new ExpandoObject();

            testEmail.From    = "*****@*****.**";
            testEmail.To      = "*****@*****.**";
            testEmail.Subject = "NADA";
            testEmail.Body    = "No Body";

            sut.Send(testEmail);

            Assert.That(mockSender.SendWasCalled, Is.True);
        }
コード例 #19
0
        public JsonResult SendEmail(FormCollection fc)
        {
            JsonResultBO result = new JsonResultBO(false);

            lichCongTacBusiness = Get <LICHCONGTACBusiness>();
            dmNguoiDungBusiness = Get <DM_NGUOIDUNGBusiness>();

            DateTime           currentDate = DateTime.Now;
            var                startOfWeek = currentDate.GetStartDayOfWeek();
            var                endOfWeek   = currentDate.GetEndDayOfWeek();
            LICHCONGTAC_SEARCH searchModel = new LICHCONGTAC_SEARCH();

            searchModel.startDate = startOfWeek;
            searchModel.endDate   = endOfWeek;
            List <long> userIds = fc["LANHDAO_ID"].ToListLong(',');
            string      subject = fc["TIEUDE"].Trim();

            string emailTemplatePath = Path.Combine(ConfigurationManager.AppSettings["FileUpload"], ConfigurationManager.AppSettings["LichCongTacEmailTemplate"]);
            string emailContent      = System.IO.File.ReadAllText(emailTemplatePath);

            foreach (var item in userIds)
            {
                DM_NGUOIDUNG user = dmNguoiDungBusiness.Find(item);
                if (user != null && string.IsNullOrEmpty(user.EMAIL) == false)
                {
                    searchModel.leaderId = user.ID;
                    List <LICHCONGTAC_BO> calendars        = lichCongTacBusiness.GetListLichCongTacs(searchModel);
                    List <LICHCONGTAC_BO> deletedCalendars = lichCongTacBusiness.GetListDeletedLichCongTacs(searchModel);
                    emailContent = emailContent.Replace("[[recipient]]", user.HOTEN);
                    emailContent = emailContent.Replace("[[week_header_title]]", currentDate.GetWeekNumber() + " (từ ngày " + startOfWeek.ToVietnameseDateFormat() + " đến ngày " + endOfWeek.ToVietnameseDateFormat() + ")");
                    emailContent = emailContent.Replace("[[week_title]]", currentDate.GetNameOfWeek() + " năm " + currentDate.Year);
                    emailContent = emailContent.Replace("[[week_start_end_date_title]]", currentDate.GetNameOfWeek() +
                                                        " (" + startOfWeek.GetNameOfDay() + ", "
                                                        + startOfWeek.ToVietnameseDateFormat() + " - "
                                                        + endOfWeek.GetNameOfDay() + ", "
                                                        + endOfWeek.ToVietnameseDateFormat() + ")");
                    emailContent = emailContent.Replace("[[email_main_content]]", this.GenerateLichCongTacEmailContent(calendars));
                    emailContent = emailContent.Replace("[[email_error_content]]", this.GenerateLichCongTacDeleteEmailContent(deletedCalendars));
                    List <string> address = new List <string>()
                    {
                        user.EMAIL
                    };
                    EmailProvider.sendEmail(emailContent, subject, address);
                }
            }
            result.Status = true;
            return(Json(result));
        }
コード例 #20
0
 public AccountController(
     UserManager <ApplicationUser> userManager,
     SignInManager <ApplicationUser> signInManager,
     IEmailSender emailSender,
     ISmsSender smsSender,
     ILoggerFactory loggerFactory
     )
 {
     _userManager   = userManager;
     _signInManager = signInManager;
     _emailSender   = emailSender;
     _smsSender     = smsSender;
     _logger        = loggerFactory.CreateLogger <AccountController>();
     _authEmail     = new AuthEmail();
     _emailProvider = new EmailProvider();
 }
コード例 #21
0
 public AccountService(UserManager <User> userManager,
                       JwtProvider jwtProvider,
                       EmailProvider emailProvider,
                       PasswordGenerator generator,
                       IMapper mapper,
                       IOptions <AuthSettings> auth,
                       IOptions <EmailConfirmationSettings> emailConfirmation)
 {
     _emailConfirmation = emailConfirmation.Value;
     _auth          = auth.Value;
     _userManager   = userManager;
     _jwtProvider   = jwtProvider;
     _emailProvider = emailProvider;
     _generator     = generator;
     _mapper        = mapper;
 }
コード例 #22
0
        public void FailureToSendThrowsException()
        {
            var mockSender = new FakeEmailSender();

            mockSender.WillFail = true;

            var     sut       = new EmailProvider(emailSender: mockSender);
            dynamic testEmail = new ExpandoObject();

            testEmail.From    = "*****@*****.**";
            testEmail.To      = "*****@*****.**";
            testEmail.Subject = "NADA";
            testEmail.Body    = "No Body";

            Assert.Throws <EmailException>(() => sut.Send(testEmail));
        }
コード例 #23
0
        public GuestRegistrationController( )
        {
            _sessionProvider          = new SessionProvider();
            _goCardlessProvider       = new GoCardlessProvider();
            _emailProvider            = new EmailProvider();
            _memberProvider           = new MemberProvider(Services);
            _membershipCostCalculator = new MembershipCostCalculator();

            UmbracoHelper umbracoHelper = new UmbracoHelper(UmbracoContext);
            var           guestContent  = umbracoHelper?.TypedContentAtRoot().DescendantsOrSelf(GuestRegistration.ModelTypeAlias).FirstOrDefault();

            if (guestContent != null)
            {
                _guestRegistrationPage = new GuestRegistration(guestContent);
            }
        }
コード例 #24
0
        public void HandleResponse(MechanismResponse mozillaResponse, string[] args)
        {
            if (!_abortRequest)
            {
                if (mozillaResponse != null && mozillaResponse.IsSuccess)
                {
                    EmailProvider provider = mozillaResponse.ClientConfig.EmailProvider;
                    _chosenTemplate = AutoconfigurationHelper.MapMechanismResponse(mozillaResponse, args[0], args[1], ConfigHelper.ParseEnumString <ServerType>(args[2]));
                }
                else
                {
                    _chosenTemplate = null;
                }

                this.Invoke(_autoConfigFinishEvent);
            }
        }
コード例 #25
0
        private static PollingConfigValues ChooseIncomingServer(EmailProvider provider, string emailAddress, ServerType incomingServerPreference)
        {
            PollingConfigValues returnVal;

            IncomingServer chosenImap = GetServerTypeByMaxPort(provider.IncomingServers, ServerType.IMAP);
            IncomingServer chosenPop  = GetServerTypeByMaxPort(provider.IncomingServers, ServerType.POP3);

            switch (incomingServerPreference)
            {
            case ServerType.IMAP:
                returnVal = MapIncomingServer(chosenImap != null ? chosenImap : chosenPop, emailAddress);
                break;

            case ServerType.POP3:
                returnVal = MapIncomingServer(chosenPop != null ? chosenPop : chosenImap, emailAddress);
                break;

            default:
                if (chosenImap != null && chosenPop != null)
                {
                    if (chosenImap.Port < 900 && chosenPop.Port > 900)
                    {
                        returnVal = MapIncomingServer(chosenPop, emailAddress);
                    }
                    else
                    {
                        returnVal = MapIncomingServer(chosenImap, emailAddress);
                    }
                }
                else if (chosenImap != null && chosenPop == null)
                {
                    returnVal = MapIncomingServer(chosenImap, emailAddress);
                }
                else if (chosenImap == null && chosenPop != null)
                {
                    returnVal = MapIncomingServer(chosenPop, emailAddress);
                }
                else
                {
                    returnVal = null;
                }
                break;
            }

            return(returnVal);
        }
コード例 #26
0
        private void AutoConfig_Search_Thread(object obj)
        {
            try
            {
                RequestType requestType = ConfigHelper.ParseEnumString <RequestType>(obj as string);

                MechanismResponse response = IspDbHandler.GetAutoconfig(_emailAddress, requestType);

                if (response.IsGuess)
                {
                    //Excludes servers that fail and determines socket type for Plain/TLS ports
                    EmailProvider provider = response.ClientConfig.EmailProvider;
                    AutoconfigurationHelper.TestAllEmailServers(provider, 5000);

                    if (provider.IncomingServers.Count == 0 ||
                        provider.OutgoingServers.Count == 0)
                    {
                        response = new MechanismResponse()
                        {
                            ResponseType = MechanismResponseType.NotFound
                        };
                    }
                }

                this.Invoke(
                    new CallBackEvent(CallBackMechanismResponse),
                    this,
                    response,
                    new Action <MechanismResponse>(resp =>
                {
                    if (resp != null && resp.IsSuccess)
                    {
                        _mechanismSuccess = resp;
                        contentPage2.Success();
                    }
                    else
                    {
                        contentPage2.Failed();
                    }
                    cmdNext.Enabled = true;
                    cmdNext.Focus();
                }));
            }
            catch
            { }
        }
コード例 #27
0
 public AccountService(UserManager <User> userManager, IUserService userService,
                       SignInManager <User> signInManager, GeneratePasswordProvider generatePassword,
                       IOptions <ClientConnectionOptions> connectionOptions,
                       EmailProvider emailProvider,
                       IUserRepository userRepository, JwtProvider jwtProvider)
 {
     _userManager       = userManager;
     _userService       = userService;
     _signInManager     = signInManager;
     _generatePassword  = generatePassword;
     _emailProvider     = emailProvider;
     _userRepository    = userRepository;
     _jwtProvider       = jwtProvider;
     _connectionOptions = connectionOptions;
     _localhost         = _connectionOptions.Value.Localhost;
     _path = _connectionOptions.Value.Path;
 }
コード例 #28
0
 public IdentityController(
     UserManager <ApplicationUser> userManager,
     SignInManager <ApplicationUser> signInManager,
     IEmailSender emailSender,
     ISmsSender smsSender,
     ILoggerFactory loggerFactory)
 {
     _userManager          = userManager;
     _signInManager        = signInManager;
     _emailSender          = emailSender;
     _smsSender            = smsSender;
     _logger               = loggerFactory.CreateLogger <IdentityController>();
     _dbContext            = new ApplicationDbContext();
     _addressProvider      = new AddressProvider();
     _emailProvider        = new EmailProvider();
     _authEmail            = new AuthEmail();
     _organisationProvider = new OrganisationProvider();
 }
コード例 #29
0
ファイル: AccountBusiness.cs プロジェクト: nsaud01/Logman
        public void SendCreateUserConfirmationEmail(User user, string activationUrl)
        {
            string templateBody =
                "Dear @Name,<br>Your LogMan account is pending confirmation.Please clcick here to activate your account: <a href='@Link'>Activate</a><br>";
            var imagePaths = new Dictionary <string, string>();

            if (HttpContext.Current != null)
            {
                string emailTemplate = HttpContext.Current.Server.MapPath("~/App_Data/Templates/ConfirmEmail.html");
                templateBody = File.ReadAllText(emailTemplate)
                               .Replace("@Name", user.Username)
                               .Replace("@Link", activationUrl)
                               .Replace("@Password", user.Password);
                imagePaths.Add("myImageID", HttpContext.Current.Server.MapPath("~/Content/Images/LogManLogo.jpg"));
            }

            EmailProvider.SendAsync("", user.Username, "Confirm Your LogMan Account!", templateBody, imagePaths);
        }
コード例 #30
0
 public IHttpActionResult RecoverPassword(string email)
 {
     using (var context = new ApplicationDbContext())
     {
         var userManager = new ApplicationUserManager(new ApplicationUserStore(context));
         var user        = userManager.Users.Where(x => x.Email.Equals(email)).FirstOrDefault();
         if (user == null)
         {
             return(NotFound());
         }
         var code = userManager.GeneratePasswordResetToken(user.Id);
         // ReSharper disable Mvc.ActionNotResolved
         var callbackUrl = Url.Link("Default", new { Controller = WebConstants.AccountControllerName, Action = WebConstants.ResetPasswordAction, userId = user.Id, code });
         EmailProvider.SendEmail(user.Email, "Reset Password", "Hi " + user.UserName + ",<br/><br/>Please reset your password by clicking here: <a href=\"" + callbackUrl + "\">link</a><br/><br/>MyPharmacy Team");
         // ReSharper restore Mvc.ActionNotResolved
         return(StatusCode(HttpStatusCode.NoContent));
     }
 }
コード例 #31
0
        public void Initialize_WithValuesFromConfig_SetsConfigProperties(EmailProvider provider)
        {
            // arrange
            var configValue = new NameValueCollection();

            configValue["adminEmail"] = "*****@*****.**";
            configValue["smtpServer"] = "smtp.example.com";
            configValue["password"]   = "******";
            configValue["username"]   = "******";

            // act
            provider.Initialize("providerTest", configValue);

            // assert
            Assert.AreEqual("*****@*****.**", provider.AdminEmail, "Did not initialize the admin email properly.");
            Assert.AreEqual("smtp.example.com", provider.SmtpServer, "Did not initialize the SMTP server properly.");
            Assert.AreEqual("abracadabra", provider.Password, "Did not initialize the password properly.");
            Assert.AreEqual("haacked", provider.UserName, "Did not initialize the username properly.");
        }