Heba Kamel Ответов: 1

операция имеет тайм-аут исключение ошибки при отправке почты


Привет,
У меня есть это исключение при отправке почты
время операции истекло
любая помощь
это мой код
protected bool SendMail()
        {
            //MessageBox.Show(plainText);
            bool send = true;
            try
            {
                MailMessage mail = new MailMessage();
                SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
                mail.From = new MailAddress(fromMail);
                //mail.To.Add(email);


                var distinctAddress = new List<string>(email.Split(',').Distinct());
                //mail.To = string.Empty;

                foreach (string address in distinctAddress) // Loop through all strings
                {
                    mail.To.Add(address) ;//= address + ","; 
                    emailsList.Add(address);
                }
                //this.To = this.To.TrimEnd(',');
                //mail.To.Add(this.To);

                mail.Subject = subject;
                mail.Body = body;
                mail.IsBodyHtml = true;
                mail.BodyEncoding = System.Text.Encoding.UTF8;
                //if (!String.IsNullOrWhiteSpace(filePath))
                if(filesPathList.Count > 0)
                {
                    for (int i = 0; i < filesPathList.Count; i++)
                    {
                        mail.Attachments.Add(new Attachment(filesPathList[i]));
                    }
                }

                if (uploadsPathList.Count > 0)
                {
                    for (int i = 0; i < uploadsPathList.Count; i++)
                    {
                        mail.Attachments.Add(new Attachment(uploadsPathList[i]));
                    }
                }
                SmtpServer.Port = 587;
                SmtpServer.Credentials = new System.Net.NetworkCredential(fromMail, fromPass);
                SmtpServer.EnableSsl = true;
                SmtpServer.Send(mail);
                
            }
            catch (Exception ex)
            {
                send = false;
                MessageBox.Show(ex.ToString());
            }
            return send;
        }

..

Mathi Mani

Похоже, вы пытаетесь отправить слишком много вложений в одном электронном письме. Возможно, это и есть причина. Попробуйте отправить с 1 или 2 вложениями и посмотрите, работает ли это.

ZurdoDev

Пожалуйста, опубликуйте это решение.

Heba Kamel

вы правы, я попробовал 2 или 3, и он посылает правильно
вопрос теперь в том, сколько вложений я могу отправить ?

Sergey Alexandrovich Kryukov

Скорее всего, дело не в количестве "насадок" (деталей), а в общем размере.
—СА

Heba Kamel

есть ли способ увеличить этот размер, чтобы отправить больше вложений ?

Sergey Alexandrovich Kryukov

Я не знаю. Это зависит от какой-то политики, установленной какой-то партией. Ничего, связанного с программированием. Обычная администрация.
—СА

Heba Kamel

Хорошо, большое вам спасибо :)

Sergey Alexandrovich Kryukov

Конечно. Я хотел бы действительно помочь, но это так. Я боюсь, что вам просто нужно научиться обходиться с меньшими сообщениями. "Вложения" - это зло, особенно слишком большие; есть файловые сервисы, сайты обмена файлами, мгновенные сообщения с передачей файлов и так далее... :-)
—СА

Heba Kamel

и в моем случае мне нужно отправить много вложений .

1 Ответов

Рейтинг:
1

WoodseyAU

Извините, что несу плохие новости, но у GMAIL есть ограничения на
а) общий размер сообщения
б) индивидуальный размер крепления
в) общее количество вложений

По-видимому, их можно обойти, если вложения хранятся на google диске, а вложения - это просто ссылки на хранилище google Диска, хотя я
а) не используйте облачные хранилища для конфиденциальных файлов бизнеса
б) знать, как прикреплять такие ссылки

Если вам действительно нужно побить ограничения по умолчанию, вам нужно прочитать об этих ограничениях и обходах в таких местах, как Отправка вложений с помощью сообщения Gmail - компьютер - справка Gmail[^]

Извините, я только сейчас заметил, сколько ему лет. Так тооооо поздно :-)