Получение почтового ящика недоступно. Ошибка слишком многих недействительных получателей

1

Наше приложение отправляет электронные письма, используя

new SmtpClient(smtpServer).Send(message);

Мы убедились, что smtpServer действителен, сообщение имеет To и From адреса, тему и тело. Если какой-либо из них отсутствует, мы отправили бы исключение, прежде чем пытались отправить сообщение.

Но приложение часто терпит неудачу с приведенным ниже исключением.

Ошибка электронной почты: System.Net.Mail.SmtpException: почтовый ящик недоступен. Ответ сервера: Слишком много недопустимых получателей.

Обратите внимание, что функция отправки электронной почты не всегда сбой. Для того же адреса "Кому" он терпит неудачу, может быть, примерно в половине случаев. Таким образом, если приложение пытается отправить электронные письма 100 раз, мы получаем некоторые 40+ сбои с тем же сообщением.

Я уже подтвердил, что адрес "Адрес" и адрес "От" существуют. Мы наблюдаем эту проблему с прошлого месяца, когда перешли от Outlook к Gmail. Вот код.

if (fromAddress.Length == 0)
                fromAddress = Resources.FromAddress;

            if (toAddress.Length == 0) return "To Address is Required.";


            if (smtpServer.Length == 0)
                smtpServer = Resources.SMTPServer;

            if (string.IsNullOrEmpty(smtpServer))
                return "SMTP sever not specified";


            MailMessage mailMessage = new MailMessage();

            //set the addresses
            mailMessage.From = new MailAddress(fromAddress);
            string[] toAdds = toAddress.Split(';');
            short i = 0;
            foreach (string address in toAdds)
            {
               if(i==0) mailMessage.To.Add(address); else  mailMessage.CC.Add(address);
                i++;
            }

            if (!string.IsNullOrEmpty(bcc))
            {
                string[] bccAddresses = bcc.Split(';');

                foreach (string address in bccAddresses)
                {
                    mailMessage.Bcc.Add(address);
                }
            }

            if (!string.IsNullOrEmpty(cc))
            {
                string[] ccAddresses = cc.Split(';');

                foreach (string address in ccAddresses)
                {
                    mailMessage.CC.Add(address);
                }
            }

            if (subject.Length > 0)
                mailMessage.Subject = subject;

            mailMessage.Body = sBody;
            mailMessage.IsBodyHtml = true;

            SmtpClient emailClient = new SmtpClient(smtpServer);
            emailClient.Send(mailMessage);

Любые направления?

  • 0
    Feroz это может произойти по ряду причин ... если у вас есть отдельные электронные письма, и у одного из них есть неправильное имя хоста в их адресе электронной почты, или если вы не проанализировали список получателей должным образом ... возможно, у вас есть 2 адреса электронной почты, например, конфликтующие [email protected]@gmail.com и нет подходящего разделителя ... лучшее, что я бы посоветовал, - это установить точки [email protected]@gmail.com обработать большой список и посмотреть, на каких письмах он не работает, и проверить значение ... это, вероятно, что-то так просто ..
  • 0
    Кроме того, не раскрывая нам фактические адреса электронной почты получателей, вы можете привести точный пример того, как письма маскируют или меняют их ...
Показать ещё 8 комментариев
Теги:
smtp

1 ответ

0

Если тот же адрес электронной почты с тем же отправителем и получателем иногда принимается, иногда отклоняется сервером SMTP, это может быть результатом политики антиспама сервера. Например:

  • Предупреждение об атаке Harvest Attack (DHAP): это вызывает ошибку "550 Too many invalid recipients" при превышении количества команд RCPT TO за определенный период времени.
  • Квоты: ограничение количества почтовых сообщений, которое почтовый ящик /IP может отправлять в минуту/секунду для предотвращения спама.

Вы можете проверить, являются ли параметры SMTP-сервера причиной вашей проблемы (временно):

  • перенаправление IP-адреса вашего SMTP-клиента
  • отключение политики quota/antispam, применяемой к почтовому ящику отправителя

Если это не решит вашу проблему, используйте инструмент, например WireShark, для записи диалога SMTP и проверки того, какие адреса электронной почты отправляются в команде RCPT TO, и в каких случаях сервер SMTP отвергает их. Затем отправьте его здесь.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню