2010-10-09 12 views
0

Excuses car je suis un peu débutant avec ça. Je suis en train d'envoyer un e-mail de mon site Web ASP.NET en utilisant le code suivant (en remplacement de toute évidence le nom d'hôte, nom d'utilisateur et mot de passe avec les valeurs réelles):Erreur lors de l'envoi de l'e-mail

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 

Lorsque vous essayez d'envoyer le courrier que je suis recevoir cette erreur:

"Impossible de lire les données de la connexion de transport: net_io_connectionclosed." J'ai vu plusieurs forums pour essayer de trouver de l'aide, mais je ne suis pas vraiment sûr de ce que je devrais faire pour le rectifier.

Toute aide serait grandement appréciée. Merci.

+0

J'ai trouvé ailleurs qu'effectuer ce qui suit résoudrait ceci: Ceci est un problème de serveur virtuel SMTP, chargez IIS et * clic droit Serveur virtuel SMTP par défaut. * Modifier l'adresse IP à Tous non affectés. J'héberge avec namesco si vraisemblablement je devrais entrer en contact avec eux et leur demander de faire ceci? Quelqu'un d'autre a-t-il trouvé que c'est une solution? – Leah

+0

Merci à tous pour leurs réponses. J'ai finalement réussi à résoudre ce problème en contactant Namesco - ils ont dit que tout ce que je devais faire était de changer le nom d'hôte que j'avais mis en "localhost" et ça a marché. – Leah

Répondre

1

Merci à tous pour leurs réponses. J'ai finalement réussi à résoudre ce problème en contactant Namesco - ils ont dit que tout ce que je devais faire était de changer le nom d'hôte que j'avais mis en "localhost" et ça a marché.

0

Vous n'avez pas défini votre serveur SMTP dans votre fichier web.config.

Voir le web.config dans l'article Sending Email with System.Net.Mail

Vous pouvez le faire dans IIS, mais je voudrais recommander la mise en web.config de l'application pour faciliter l'accès par l'équipe de développement.

0

Fondamentalement, votre serveur SMTP bloque votre demande d'envoi de courrier.

Vous pouvez facilement tester vous-même en ouvrant une fenêtre de commande et utiliser la commande telnet pour essayer de vous connecter au serveur de messagerie - il vous expulsera immédiatement.

Je n'ai pas utilisé Namesco auparavant, mais ce problème a été résolu en ajoutant l'adresse IP du serveur essayant d'envoyer le courrier à la liste des machines autorisées dans IIS.

Je suppose que Namesco ne modifiera pas le paramètre à "Tous non affectés" car cela accorderait à n'importe qui l'autorisation d'envoyer du courrier.

0

Ajoutez les lignes ci-dessous à votre fichier web.config

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

Voici le code pour envoyer du courrier espère que cette aide

Dim mMailMessage As New MailMessage() 
     mMailMessage.From = New MailAddress("[email protected]") 
    If Not String.IsNullOrEmpty("[email protected]") Then 
     mMailMessage.ReplyTo = New MailAddress("[email protected]") 
    End If 

    mMailMessage.To.Add(New MailAddress("[email protected]")) 

    mMailMessage.Bcc.Add(New MailAddress("[email protected]")) 

    mMailMessage.CC.Add(New MailAddress("[email protected]")) 

    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