Ошибка SMTP-соединения ASP.net - PullRequest
1 голос
/ 26 мая 2009

Следующий код устраняет ошибку после ошибки.

        MailMessage Enveloppe = new MailMessage();

        //emails is an array of strings
        foreach ( string email in emails )
            Enveloppe.To.Add(email);

        //Setup message parameters
        Enveloppe.Subject = "Documentation";
        Enveloppe.Body = "Infinitelycoolbodyhere"
        Enveloppe.From = new MailAddress("mrzombie@stuff", "Myname");

        //files is an array of strings
        foreach ( string filename in files ) { 
            //Add attachments
            Enveloppe.Attachments.Add(new Attachment(new System.Net.WebClient().OpenRead(filename),filename.Substring(filename.LastIndexOf('/'))));
        }

        //Create the smtp client, and let it do its job
        SmtpClient Mailman = new SmtpClient("mysmtphost");
        Mailman.EnableSsl = true;
        Mailman.Port = 465;
        Mailman.DeliveryMethod = SmtpDeliveryMethod.Network;
        Mailman.Credentials = new System.Net.NetworkCredential("usernamehere", "passwordhere");
        Mailman.Send(Enveloppe);

Бывает так, что либо сообщается, что время моей операции истекло, либо что "попытка подключения не удалась, потому что подключенная сторона не ответила должным образом через некоторое время, или не удалось установить соединение, потому что подключенный хост не смог ответить" .

Я в тупике, я не вижу, какую часть я делаю неправильно

Обновление: я не могу подключиться к серверу из Telnet, в лучшем случае я подключаюсь к ноутбуку (под Ubuntu), но я никогда не получаю ответ «200». Под рабочей станцией Windows я получаю постоянное пустое окно telnet.

Я могу отправлять / получать электронную почту на указанном сервере с Thunderbird без каких-либо проблем.

Ответы [ 4 ]

1 голос
/ 08 июня 2009

Наконец-то нашли виновника - каким-то образом связь между «якобы правильным» smtp-сервером, который мне предоставляла хостинг, и фактическим smtp-сервером осталась висеть. Я просто изменил адрес mail.domain.com на smtp.hostingdomain.com, и он все исправил.

Это только один из тех моментов "какого черта", которые я ненавижу. Из-за этого мне пришлось отказаться от функции отправки почты на основе приложений, но в итоге мы с боссом решили, что вместо этого мы будем где-то размещать файлы и включать ссылки в электронное письмо вместо добавления прикрепленных файлов. на почту.

Так что, да, это на самом деле не ответ на вопрос, а для тех, кто рассматривает решение, но вы можете поместить файлы, которые вы хотите отправить, в доступное извне место и вместо этого включить ссылку. Там.

0 голосов
/ 26 мая 2009

Звучит так, будто что-то пошло не так при попытке установить связь с вашим SMTP-сервером (ха, не дерьмо!).

Я предполагаю, что вы работаете в Windows, перейдите в Пуск -> Выполнить -> 'telnet mysmtphost 465' и посмотрите ответ, который вы получите в консоли.

Вы видите что-то подобное?

Connected to mysmtphost.
Escape character is '^]'.
220 mysmtphost
0 голосов
/ 27 мая 2009

Попробуйте включить трассировку для System.Net.Mail (похоже, вы используете SNM). Для этого вам нужно добавить следующее в ваш файл .config.

<configuration>
  <system.diagnostics>
    <trace autoflush="true" />

    <sources>

      <source name="System.Net" >
        <listeners>
          <add name="MyTraceFile"/>
        </listeners>
      </source>

      <source name="System.Net.Sockets">
        <listeners>
          <add name="MyTraceFile"/>
        </listeners>
      </source>

    </sources>


    <sharedListeners>
      <add
        name="MyTraceFile"
        type="System.Diagnostics.TextWriterTraceListener"
        initializeData="System.Net.trace.log"                />
    </sharedListeners>

    <switches>
      <add name="System.Net" value="Verbose" />
      <add name="System.Net.Sockets" value="Verbose" />
    </switches>

Надеюсь, это хотя бы скажет вам, что происходит.

У меня здесь есть больше информации о том, чего ожидать: http://systemnetmail.com/faq/4.10.aspx

0 голосов
/ 26 мая 2009

Этот SMTP-сервер работает и работает на 465 и поддерживает ли он SSL?

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