Письмо с подтверждением, отправленное через SMTP-клиент, не отправляет полный URL-адрес c # - PullRequest
0 голосов
/ 29 июня 2018

Я создаю подтверждение по электронной почте после регистрации пользователя в моем приложении ASP.NET. Вот мой код:

            var code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
            var callbackUrl = new Uri(Url.Link("ConfirmEmailRoute", new { userId = user.Id, code = code }));

            SmtpClient smtpClient = new SmtpClient("smtp.office365.com", 25);
            smtpClient.UseDefaultCredentials = false;
            smtpClient.Credentials = new System.Net.NetworkCredential(credentials, credentials);
            smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
            smtpClient.EnableSsl = true;
            MailMessage mail = new MailMessage();
            mail.Body = "Please confirm your account by clicking this link: <a href=\""
                                                + callbackUrl + "\">link</a>";

            mail.From = new MailAddress(Address, App);
            mail.To.Add(new MailAddress(user.Email));
            //mail.CC.Add(new MailAddress("MyEmailID@gmail.com"));

            smtpClient.Send(mail);

Вот подтверждение по электронной почте:

    [HttpGet]
    [Route("ConfirmEmail", Name = "ConfirmEmailRoute")]
    public async Task<IHttpActionResult> ConfirmEmail(string userId = "", string code = "")
    {
        //var _result = XElement.Parse(success).Value;
        if (string.IsNullOrWhiteSpace(userId) || string.IsNullOrWhiteSpace(code))
        {
            ModelState.AddModelError("", "User Id and Code are required");
            return BadRequest(ModelState);
        }

        IdentityResult result = await UserManager.ConfirmEmailAsync(userId, code);

        if (result.Succeeded)
        {
            var response = new JObject();
            response.Add(new JProperty("Email Verified", "You can now log in to the app."));
            return Ok(response);
        }
        else
        {
            return GetErrorResult(result);
        }
    }

Это электронное письмо успешно отправляется в настольном приложении и в приложении Gmail на мобильном телефоне. Для устройств Apple почтовое приложение не берет ссылку полностью
И.Е.

callbackurl не все включено в ссылку

Заранее спасибо.

1 Ответ

0 голосов
/ 29 июня 2018

Я просто должен был добавить:

mail.IsBodyHtml = true;

ссылка была отправлена ​​полностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...