Ошибка при попытке отправить письмо - PullRequest
0 голосов
/ 10 октября 2010

Извиняюсь, так как я немного новичок в этом. Я пытаюсь отправить электронное письмо со своего веб-сайта ASP.NET, используя следующий код (очевидно, заменяя имя хоста, имя пользователя и пароль фактическими значениями):

Public Shared Sub Send(ByVal ToEmail As String, ByVal FromEmail As String, ByVal Subject As String, ByVal Message As String)
    Dim mm As New MailMessage(FromEmail, ToEmail, Subject, Message)

    Dim smtp As New SmtpClient("hostname")
    smtp.Credentials = New NetworkCredential("username", "password")

    smtp.Send(mm)
End Sub

При попытке отправить письмо я получаю эту ошибку:

"Невозможно прочитать данные из транспортного соединения: net_io_connectionclosed."

Я просматривал различные форумы, чтобы попытаться найти какую-то помощь в этом, но я не совсем уверен, что мне следует делать, чтобы исправить это.

Любая помощь будет принята с благодарностью. Благодаря.

Ответы [ 4 ]

1 голос
/ 19 мая 2011

Спасибо всем за ответы. В конце концов мне удалось решить эту проблему, связавшись с Namesco - они сказали, что все, что мне нужно, это изменить имя хоста, которое я ввел, на localhost, и это сработало.

0 голосов
/ 10 октября 2010

Обычно ваш SMTP-сервер блокирует ваш запрос на отправку почты.

Вы можете легко проверить это самостоятельно, открыв окно командной строки и воспользовавшись командой telnet, чтобы попытаться подключиться к почтовому серверу - это немедленно выгонит вас.раньше, но эта проблема была решена путем добавления IP-адреса сервера, пытающегося отправить почту, в список разрешенных машин в IIS.

Я предполагаю, что Namesco не изменит настройки на "Все неназначенные"так как это даст кому-либо разрешение на отправку почты.

0 голосов
/ 10 октября 2010

ДОБАВЬТЕ приведенные ниже строки в файл web.config

<system.net>
    <mailSettings>
      <smtp from="email@yourdomain.com">
        <network host="smtp.yourdomain.com" port="25" userName="email@yourdomain.com" password="XXXXX" />
      </smtp>
    </mailSettings>
  </system.net>

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

    Dim mMailMessage As New MailMessage()
        mMailMessage.From = New MailAddress("somebody@yahoo.com")
    If Not String.IsNullOrEmpty("somebody@yahoo.com") Then
        mMailMessage.ReplyTo = New MailAddress("somebody@yahoo.com")
    End If

    mMailMessage.To.Add(New MailAddress("somebody@yahoo.com"))

    mMailMessage.Bcc.Add(New MailAddress("somebody@yahoo.com"))

    mMailMessage.CC.Add(New MailAddress("somebody@yahoo.com"))

    mMailMessage.Subject = "some subject"
    mMailMessage.Body = "some body"

    mMailMessage.IsBodyHtml = False
    mMailMessage.Priority = MailPriority.Normal

    Try
        Dim mSmtpClient As New SmtpClient()
        mSmtpClient.Send(mMailMessage)
    Catch ex As SmtpException
        Debug.Print("Unable to send message " & ex.Message)
    End Try
0 голосов
/ 10 октября 2010

Вы не установили свой SMTP-сервер в своем файле web.config.

См. Web.config в статье Отправка электронной почты с помощью System.Net.Mail

Вы можете сделать это в IIS, но я бы порекомендовал установить его в файле web.config приложения для более легкого доступа для команды разработчиков.

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