Отправка активной ссылки по электронной почте в проекте веб-API. - PullRequest
0 голосов
/ 26 января 2019

Я пытаюсь вызвать глубокую ссылку, которая будет отправлена ​​пользователю по электронной почте. Это типичный сценарий забытого пароля, однако вместо сброса пароля через веб-ссылку пользователь будет делать это в приложении для Android.

Вот как я генерирую электронное письмо.

[HttpPost]   
[AllowAnonymous]
    [Route("ForgotPassword")]
    public async Task<IHttpActionResult> ForgotPassword(ForgotPasswordBindingModel model)
    {
        if (ModelState.IsValid)
        {
            var user = await AppUserManager.FindByEmailAsync(model.Email);
            if (user == null || !(await AppUserManager.IsEmailConfirmedAsync(user.Id)))
            {
                // Don't reveal that the user does not exist or is not confirmed
                return Ok();
            }

            // Send an email with this link
            string code = await AppUserManager.GeneratePasswordResetTokenAsync(user.Id);
            //var callbackUrl = new Uri(Url.Link("ResetPasswordRoute", new { user.Id, code }));
            var callbackIntent = "intent://forgotpassword?code="+code+"#Intent;scheme=challengehunt;package=com.seed.challengehunt;end";
            await AppUserManager.SendEmailAsync(user.Id, "Reset Password", "This would only work if you are seeing this email in an android device. Please reset your password by clicking <a href=\"" + callbackIntent + "\">here</a>");
            return Ok();
        }
        return BadRequest(ModelState);


    }

Это мой почтовый сервис, прикрепленный к менеджеру пользователя

private async Task ConfigureGmailAsync(IdentityMessage message)
    {
        // Mail message
        var mail = new MailMessage()
        {
            From = new MailAddress("xyz@xyz.com", "Admin"),
            Subject = message.Subject,
            Body = message.Body,
            IsBodyHtml=true
        };

        // Credentials
        var credentials = new NetworkCredential("admin@xyz.com", "xyz");


        mail.To.Add(message.Destination);


        // Smtp client
        var client = new SmtpClient()
        {
            Port = 8889,
            UseDefaultCredentials = false,
            Host = "mail.domain.com",
            EnableSsl = false,
            Credentials = credentials
        };

        // Send it...         
        await client.SendMailAsync(mail);
    }

Это письмо, которое я получаю enter image description here

Как видите, ссылка не активна.

Любые намеки?

...