Отправитель моей почты не отправляет электронную почту кому-либо - PullRequest
0 голосов
/ 09 сентября 2018

Я создаю метод для отправки Email, например:

public async Task SendEmailCC(string body, string subject, List<string> mainRecievers, List<string> receivers)
    {
        SmtpClient client = new SmtpClient("smtp-mail.outlook.com")
        {
            UseDefaultCredentials = true,
            Port = 587,
            EnableSsl = true,
            DeliveryMethod = SmtpDeliveryMethod.Network,
            Credentials = new NetworkCredential("Test@gmail.com", "MyMailPassword")
        };

        MailMessage mailMessage = new MailMessage { From = new MailAddress("job@test.org") };

        foreach (var reciever in mainRecievers)
        {
            mailMessage.To.Add(reciever);
        }

        foreach (var item in receivers)
        {
            mailMessage.CC.Add(item);
        }

        mailMessage.Body = body;
        mailMessage.IsBodyHtml = true;
        mailMessage.Subject = subject;

        await client.SendMailAsync(mailMessage);
    }

Для теста я отправил электронное письмо самому себе, но я не получил Email. как я могу найти мою проблему?

1 Ответ

0 голосов
/ 09 сентября 2018

Действительно, мне не нравится отвечать на мой вопрос, но я нашел это.

Мой почтовый сервер был Google, и я использовал OutLookSmtp, к этому разделу моего кода у меня есть, и я изменил. как:

SmtpClient client = new SmtpClient("smtp-mail.outlook.com")

изменено на:

SmtpClient client = new SmtpClient("smtp.gmail.com")

После этого я получаю это исключение:

Для SMTP-сервера требуется безопасное соединение, или клиент не прошел проверку подлинности. Ответ сервера был: 5.5.1 Требуется аутентификация ", чем ошибка может произойти из-за следующих случаев.

Для этой проблемы я пытаюсь это:

случай 1: неправильный пароль

вариант 2: при попытке войти из какого-либо приложения

вариант 3: при попытке входа из домена, отличного от вашего часового пояса / домена / компьютера (в большинстве случаев это происходит при отправке почты из кода)

Существует решение для каждого

решение для случая 1: введите правильный пароль.

решение 1 для случая 2: зайдите в настройки безопасности по ссылке https://www.google.com/settings/security/lesssecureapps и включите менее безопасные приложения. Так что вы сможете войти из всех приложений.

решение 2 для случая 2: (см. https://stackoverflow.com/a/9572958/52277) включить двухфакторную аутентификацию (так называемая двухэтапная проверка), а затем сгенерировать пароль для конкретного приложения. Используйте этот новый пароль для аутентификации через SMTP.

решение 1 для случая 3: (Это может быть полезно), вам нужно просмотреть упражнение. но проверка активности не будет полезна из-за последних стандартов безопасности, ссылка не будет полезна. Так что попробуйте следующий случай.

решение 2 для случая 3: если вы разместили свой код где-то на рабочем сервере и если у вас есть доступ к производственному серверу, подключитесь к производственному серверу с помощью удаленного рабочего стола и попробуйте один раз войти в браузер рабочего сервера. , Это добавит исключение для входа в Google, и вам будет разрешено войти из кода.

Но что, если у вас нет доступа к производственному серверу. попробуйте решение 3

решение 3 для случая 3: Вы должны включить логин из другого часового пояса / ip для своей учетной записи Google.

для этого перейдите по ссылке https://g.co/allowaccess и разрешите доступ, нажав кнопку продолжения.

И это все. Ну вот. Теперь вы сможете войти с любого компьютера и с помощью любого приложения в свою учетную запись Google

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