Miguel Altamirano Morales Ответов: 1

Как исправить ошибку при попытке отправить электронное письмо с помощью класса smtpclient


Всем Доброе Утро !!!.

Я разрабатываю модуль кода с VB NET 2017, пытаясь отправлять электронные письма с помощью класса SmtpClient, и получаю следующее сообщение об ошибке (более или менее, исходный текст на испанском языке):
- Невозможно подключиться к удаленному серверу. Ошибка была произведена во время попытки подключения из-за того, что подключенная часть не ответила должным образом после периода задержки, или произошла ошибка в установленном соединении, так как подключенный хост не смог ответить".

Это VB код, который я использую:

Dim objMail As New System.Net.Mail.SmtpClient
Dim MailMensaje As New System.Net.Mail.MailMessage()
With objMail
     .UseDefaultCredentials = True
     .Host = "colegio.com.mx"
     .Port = 25
     .EnableSsl = False

     MailMensaje.[To].Add ("someuser@outlook.com")
     MailMensaje.From = New 
  System.Net.Mail.MailAddress("somebody.name@colegio.com.mx", "DataMAC17", System.Text.Encoding.UTF8)
                    MailMensaje.Subject = "Envío de archivos de prueba"
                    MailMensaje.SubjectEncoding = System.Text.Encoding.UTF8
                    MailMensaje.Body = "Les envío los archivos de prueba solicitados"
                    MailMensaje.BodyEncoding = System.Text.Encoding.UTF8
                    MailMensaje.Priority = System.Net.Mail.MailPriority.Normal
                    MailMensaje.IsBodyHtml = False
                    Dim Anexo1 As New System.Net.Mail.Attachment(Ruta1)
                    Dim Anexo2 As New System.Net.Mail.Attachment(Ruta2)
                    MailMensaje.Attachments.Add(Anexo1)
                    MailMensaje.Attachments.Add(Anexo2)
 
                    Try
                        objMail.Send(MailMensaje)
                        MessageBox.Show("Mail enviado correctamente", "Felicidades !!!", MessageBoxButtons.OK)
                    Catch ex As System.Net.Mail.SmtpException
                        MessageBox.Show(ex.ToString, "Error!", MessageBoxButtons.OK)
                    Finally
                        objMail = Nothing
                        objMail.Dispose()
                    End Try
                End With


Я был бы очень признателен за любую помощь или чаевые.

Спасибо заранее

Что я уже пробовал:

Я искал примеры кода и читал всю информацию, которую я нашел о вовлеченных классах, и я собираюсь продолжать искать ответы, чтобы решить свою проблему.

Я пробовал с примерами, которые я нашел, но ни один из них не сработал.

Richard MacCutchan

Вы уверены в этом colegio.com.mx работает ли SMTP-сервер на порту 25?

Miguel Altamirano Morales

Спасибо за ваш ответ Ричардс;

Ну, по крайней мере, так мне сказал системный парень; я также доказал это с портом 587 (я видел его в своей почтовой конфигурации), и он тоже не работает.

Christiaan van Bergen

Попробуйте установить соединение с этим адресом и портом другим способом. Может быть, телнет?

Maciej Los

Как утверждает google... colegio.com.mx домен выставлен на продажу ;)

Miguel Altamirano Morales

Здравствуйте, Мацей, я рад снова связаться с вами.

colegio.com.mx это не настоящее имя моего домена. Я поставил это потому, что не могу использовать настоящий код. И даже не другие имена. Надеюсь, вы меня раскроете, пожалуйста.

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

Спасибо Мацей !!!

Maciej Los

Привет, Мигель.

Если вы решили свою проблему, пожалуйста, опубликуйте свое решение и отметьте его как ответ.

Овации,
Мацей

Miguel Altamirano Morales

Вы имеете в виду опубликовать мое решение в качестве ответа ?

Потому что я попытался пометить свой вопрос как ответ, но не увидел кнопки или опции для этого.

1 Ответов

Рейтинг:
8

Miguel Altamirano Morales

доброе утро. Я решил свою проблему, сделав это:

Я изменил строку: .Host = "colegio.com.mx" для правильного сервера имен; эти данные были неверными. Первоначально я думал, что хост-это конкретное доменное имя компании, но это было не так.

Я изменил строку: .UseDefaultCredentials = True
для: .Учетные Данные = Новый Система.Нет.А networkcredential(пользователь, пароль),
будучи строковыми переменными "usuario" и "password" с правильными учетными данными, которые были даны мне системным персоналом после их поиска.

Я также изменил строку (это было неправильно): MailMensaje.[To].Add ("someuser@outlook.com")
для: MailMensaje.[To].Add(New System.Net.Mail.Почтовый адрес("someuser@outlook.com"))

Спасибо всем за ваши комментарии и ответы.


Maciej Los

5ed!

Miguel Altamirano Morales

???

Maciej Los

Взгляните на верхний правый угол вашего ответа и точки, которые вы достигли... Это называется репутационная система ;)

Miguel Altamirano Morales

Что ж, неплохая ставка для начала, не так ли ?

Maciej Los

О, да!