Несколько вложенных файлов в электронной почте с использованием asp. net core api. показывает 404 HTTP не найден - PullRequest
0 голосов
/ 10 апреля 2020

Класс модели Я использовал List и IFromFileCollection, но показывает ту же ошибку. Без вложений все работает нормально

public class EmailMessage
    {
        public string ReceiverMail { get; set; }
        public string Subject { get; set; }
        public string Content { get; set; }
        public List<IFormFile> Attachments { get; set; }
    }

Пост-действие: Я также использовал [FromForm], тогда он показывает 500 error

[HttpPost("send")]
        public IActionResult Post([FromBody ]EmailMessage emailMessage)
        {

            try
            {
                var message = new MimeMessage();
                message.To.Add(new MailboxAddress(emailMessage.ReceiverMail));
                message.From.Add(new MailboxAddress(_emailConfiguration.SmtpUsername));
                message.Subject = emailMessage.Subject;

                var bodyBuilder = new BodyBuilder();
                bodyBuilder.TextBody = emailMessage.Content;

                if (emailMessage.Attachments != null && emailMessage.Attachments.Any())
                {
                    byte[] fileBytes;
                    foreach (var attachment in emailMessage.Attachments)
                    {
                        using (var ms = new MemoryStream())
                        {
                            attachment.CopyTo(ms);
                            fileBytes = ms.ToArray();
                        }

                        bodyBuilder.Attachments.Add(attachment.FileName, fileBytes, ContentType.Parse(attachment.ContentType));
                    }
                }
                message.Body = bodyBuilder.ToMessageBody();
                using (var emailClient = new SmtpClient())
                {
                    emailClient.Connect(_emailConfiguration.SmtpServer, _emailConfiguration.SmtpPort, true);
                    emailClient.AuthenticationMechanisms.Remove("XOAUTH2");
                    emailClient.Authenticate(_emailConfiguration.SmtpUsername, _emailConfiguration.SmtpPassword);
                    emailClient.Send(message);

                    emailClient.Disconnect(true);
                }
                return Ok();
            }
            catch (Exception)
            {
                return NotFound("Not found");
            }
        }

Snapman snapsot когда я вызываю action с [FromBody] отображается код состояния 404 Не найдено enter image description here

...