Exemplo n.º 1
0
        public static async Task SendPasswordRecoveryEmail(MongoWrapper mongoWrapper,
                                                           SmtpConfiguration smtpConfig,
                                                           User user)
        {
            var confirmationCollection = mongoWrapper.Database.GetCollection <ReferenceToken>(typeof(ReferenceToken).Name);

            var tokenTask = GeneralUtils.GenerateRandomString(6, "1234567890".ToCharArray());

            string token = await tokenTask;

            ReferenceToken confirmation = new ReferenceToken()
            {
                UserId    = user._id,
                TokenType = TokenType.PasswordRecovery,
                _id       = token,
            };

            var insertConfirmationTask = confirmationCollection.InsertOneAsync(confirmation);

            await insertConfirmationTask;

            var sendEmailTask = SendEmail
                                (
                smtpConfig: smtpConfig,
                body: $"Você está recebendo este e-mail pois uma mudança de senha foi requisitada. Caso não tenha requisitado uma mudança de senha, ignore este e-mail.<br>Seu código de nova senha FindFM: <b>{token}</b>",
                subject: "[FindFM] Recuperação de senha - Código",
                encoding: Encoding.UTF8,
                from: new MailAddress(smtpConfig.Email, smtpConfig.DisplayName, Encoding.UTF8),
                to: new[] { new MailAddress(user.Email, user.FullName, Encoding.UTF8) }
                                );

            var sendEmailContinuation = sendEmailTask.ContinueWith(t =>
            {
                LOGGER.Error(t.Exception, "Sending password recovery e-mail has failed!");
            },
                                                                   TaskContinuationOptions.OnlyOnFaulted);

            await sendEmailTask;
        }
Exemplo n.º 2
0
        public static async Task SendConfirmationEmail(MongoWrapper mongoWrapper,
                                                       SmtpConfiguration smtpConfig,
                                                       User user)
        {
            var confirmationCollection = mongoWrapper.Database.GetCollection <ReferenceToken>(typeof(ReferenceToken).Name);

            var tokenTask = GeneralUtils.GenerateRandomString(6, "1234567890".ToCharArray());

            string token = await tokenTask;

            ReferenceToken confirmation = new ReferenceToken()
            {
                UserId    = user._id,
                TokenType = TokenType.Confirmation,
                _id       = token,
            };

            var insertConfirmationTask = confirmationCollection.InsertOneAsync(confirmation);

            await insertConfirmationTask;

            var sendEmailTask = SendEmail
                                (
                smtpConfig: smtpConfig,
                body: $"Seu código de confirmação FindFM: <b>{token}</b>",
                subject: "[FindFM] Confirmação de E-mail",
                encoding: Encoding.UTF8,
                from: new MailAddress(smtpConfig.Email, smtpConfig.DisplayName, Encoding.UTF8),
                to: new[] { new MailAddress(user.Email, user.FullName, Encoding.UTF8) }
                                );

            var sendEmailContiuation = sendEmailTask.ContinueWith(t =>
            {
                LOGGER.Error(t.Exception, "Sending confirmation e-mail has failed!");
            },
                                                                  TaskContinuationOptions.OnlyOnFaulted);

            await sendEmailTask;
        }