Почему мое письмо было успешно отправлено, но не доставлено в почтовый ящик получателя?

У меня есть функция проверки электронной почты в моем веб-приложении .net core, и в настоящее время я использую службу электронной почты моего активного домена в своей учетной записи веб-хостинга. В .net core3.1 я использую MailKit и MimeKit в качестве зависимостей в .net core для отправки электронной почты. Мой приведенный ниже код работает нормально, в нем нет ошибок, но когда я проверяю почтовый ящик получателя, ничего не приходит и электронное письмо не доставляется. На данный момент я не могу понять, пропустил ли я что-нибудь. Я надеюсь, что кто-нибудь может помочь мне с этим. Вот мои коды ниже.

appsettings.json

"OpvUsersViewModel": {
    "EmailId": "[email protected]",
    "UserName": "[email protected]",
    "UserPassword": "mypassword",
    "SenderName": "Admin",
    "Host": "mail.mydomain.com",
    "Port": 25
  },

Startup.cs

services.Configure<OpvUsersViewModel>(Configuration.GetSection("OpvUsersViewModel"));

Способы отправки электронной почты:

private async void SendVerificationEmail(string recepientEmail, string message)
        {
            var email = new MimeMessage();
            email.From.Add(MailboxAddress.Parse(_mailSettings.EmailId));
            email.To.Add(MailboxAddress.Parse(recepientEmail));
            email.Subject = "CODE VERIFICATION";

            email.Body = new TextPart(MimeKit.Text.TextFormat.Plain)
            { Text = message };
    
            using (var smtp = new MailKit.Net.Smtp.SmtpClient())
            {
                await smtp.ConnectAsync(_mailSettings.Host, _mailSettings.Port, SecureSocketOptions.StartTls);
                await smtp.AuthenticateAsync(_mailSettings.UserName, _mailSettings.UserPassword);
               
                await smtp.SendAsync(email);
                await smtp.DisconnectAsync(true);
            }

        }

person timmack    schedule 08.04.2021    source источник


Ответы (2)


Велика вероятность, что письмо попало в папку «Спам».

person jstedfast    schedule 08.04.2021
comment
@jstedfast ... его также нет в папке «Спам» или «Корзина». Я уже пробовал их альтернативный порт с порта 25 и все тот же результат. Я также пробовал использовать gmail smtp с портами 465 и 587, но результат тот же. Ни во входящие, ни в спам ничего не пришло. - person timmack; 09.04.2021
comment
Я попытался отправить письмо из почтовой службы своего собственного домена вручную, и оно работает нормально, но не через нашу почтовую программу на нашем веб-сайте. - person timmack; 09.04.2021
comment
Вы можете проверить журналы, но если метод SendAsync не создает исключений, значит, сервер принимает сообщение. В этот момент он находится в руках smtp-сервера. - person jstedfast; 09.04.2021

Проверьте свой код, отправив электронное письмо на тот же адрес, с которого вы его отправляете ([email protected]). Если это не удается без каких-либо ошибок в C#, попробуйте проверить журналы, чтобы увидеть, где именно происходит ошибка.

Если этот тест прошел успешно, но не с другим адресом электронной почты, вам следует поговорить об этом с администратором вашего mail.mydomain.com.

person torvin    schedule 08.04.2021