Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

enviar correo en ASP .Net

142 views
Skip to first unread message

Antonio Ortiz

unread,
Apr 22, 2009, 2:48:55 PM4/22/09
to

hola soy nuevo por aqui, me podria ayudar ?

Tengo un formulario para contacto que envia un mensaje del usuario por
email, en las pruebas me funciona correctamente pero al subirlo a mi
webserver me da error, el codigo es el siguiente:

If (String.IsNullOrEmpty(Me.TxteMail.Text) Or
String.IsNullOrEmpty(Me.txtMensaje.Text) Or _
String.IsNullOrEmpty(Me.txtNombre.Text)) Then
Me.lblMensaje.Text = "Favor de completar los datos"
Exit Sub
End If
Me.lblMensaje.ForeColor = Drawing.Color.Aquamarine
Me.lblMensaje.Text = ""
Dim smptClient As New SmtpClient()
Dim message As New MailMessage()
Dim fromAddress As New MailAddress(em...@dominio.com)
smptClient.Host = "smtpout.secureserver.net"
smptClient.Port = 25

Dim basicAuthenticationInfo As New
System.Net.NetworkCredential(mie...@dominio.com, "MiClave")

smptClient.Credentials = basicAuthenticationInfo

'smptClient.UseDefaultCredentials = False
With message
.From = fromAddress
.To.Add("mie...@dominio.com")
.Subject = "*** Formulario de contacto ***"
.IsBodyHtml = False
.Body = "eMail: " & Me.TxteMail.Text & vbNewLine & _
"Nombre: " & Me.txtNombre.Text & vbNewLine & vbNewLine &
_
"Mensaje: " & Me.txtMensaje.Text
'If filename <> "" Then
' .Attachments.Add(New Attachment(filename, "text/plain"))
' End If
End With
'Try
smptClient.Send(message)
Me.lblMensaje.Text = "El correo fue enviado con éxito"
Me.TxteMail.Text = ""
Me.txtMensaje.Text = ""
Me.txtNombre.Text = ""
'Catch ex As Exception
'Me.lblMensaje.Text = ex.Message
'Me.lblMensaje.ForeColor = Drawing.Color.Red
'End Try


* El error ocurre en la linea: smptClient.Send(message)

[SocketException (0x274c): A connection attempt failed because the connected
party did not properly respond after a period of time, or established
connection failed because connected host has failed to respond
XXX.XXX.XXX.XX:25]
System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot,
SocketAddress socketAddress) +1073657
System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP) +33
System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure,
Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState
state, IAsyncResult asyncResult, Int32 timeout, Exception& exception) +217

[WebException: Unable to connect to the remote server]
System.Net.ServicePoint.GetConnection(PooledStream PooledStream, Object
owner, Boolean async, IPAddress& address, Socket& abortSocket, Socket&
abortSocket6, Int32 timeout) +1490784
System.Net.PooledStream.Activate(Object owningObject, Boolean async,
Int32 timeout, GeneralAsyncDelegate asyncCallback) +191
System.Net.PooledStream.Activate(Object owningObject,
GeneralAsyncDelegate asyncCallback) +21
System.Net.ConnectionPool.GetConnection(Object owningObject,
GeneralAsyncDelegate asyncCallback, Int32 creationTimeout) +318
System.Net.Mail.SmtpConnection.GetConnection(String host, Int32 port)
+227
System.Net.Mail.SmtpTransport.GetConnection(String host, Int32 port) +316
System.Net.Mail.SmtpClient.GetConnection() +42
System.Net.Mail.SmtpClient.Send(MailMessage message) +1485


gracias,


Antonio Ortiz
antonio(a)qsoluciones.net
www.qsoluciones.net/Antonio


Alberto Poblacion

unread,
Apr 23, 2009, 2:53:48 AM4/23/09
to
"Antonio Ortiz" <a...@aortiz.net> wrote in message
news:eBLo$r3wJH...@TK2MSFTNGP03.phx.gbl...

> Tengo un formulario para contacto que envia un mensaje del usuario por
> email, en las pruebas me funciona correctamente pero al subirlo a mi
> webserver me da error, el codigo es el siguiente:
> [...]

> * El error ocurre en la linea: smptClient.Send(message)
>
> [SocketException (0x274c): A connection attempt failed because the
> connected party did not properly respond after a period of time, or
> established connection failed because connected host has failed to respond
> XXX.XXX.XXX.XX:25]


Tiene toda la pinta de ser un error de configuración del sistema o de
la red, no de tu programa. Probablemente un cortafuegos está cortando la
salida al puerto 25, y por eso tu programa informa que "el equipo al que te
conectas no ha contestado".


Antonio Ortiz

unread,
Apr 23, 2009, 12:24:40 PM4/23/09
to
Eso me parecio tambien el mensaje pero te explico un poco mas: El servidor
de correo esta en mi hosting (remoto) y cuando hago pruebas en mi PC local
si logra enviar los correos por el puerto mencionado, solo cuando subo la
aplicacion al hosting no funciona la misma aplicacion.

De hecho he probado a usar los 4 o 5 puertos alternativos que indica el
hosting y con ninguno funciona la aplicacion, solo en mi VS 2008, de manera
local, aunque utiliza el servidor de mi hosting.


Antonio Ortiz
antonio(a)qsoluciones.net
www.qsoluciones.net/Antonio

"Alberto Poblacion" <earthling-quitae...@poblacion.org>
escribió en el mensaje news:uFAaEB%23wJH...@TK2MSFTNGP02.phx.gbl...

Alberto Poblacion

unread,
Apr 24, 2009, 2:37:08 AM4/24/09
to
"Antonio Ortiz" <a...@aortiz.net> wrote in message
news:OwYGEADx...@TK2MSFTNGP05.phx.gbl...

> Eso me parecio tambien el mensaje pero te explico un poco mas: El servidor
> de correo esta en mi hosting (remoto) y cuando hago pruebas en mi PC local
> si logra enviar los correos por el puerto mencionado, solo cuando subo la
> aplicacion al hosting no funciona la misma aplicacion.

No lo has entendido. No me refería al cortafuegos entrante del servidor
de correo, que efectivamente no puede estar cerrando ese puerto porque sino
no se podrían enviar correos desde otros equipos externos, tales como tu PC
local. Me refería al cortafuegos que separa el servidor web del resto de la
internet, que es el que podría estar cerrando las conexiones salientes desde
ese servidor.

> De hecho he probado a usar los 4 o 5 puertos alternativos que indica el
> hosting y con ninguno funciona la aplicacion, solo en mi VS 2008, de
> manera local, aunque utiliza el servidor de mi hosting.

El último proveedor de hosting en el que probé una aplicación tenía sus
cortafuegos configurados para cerrar TODOS los puertos SALIENTES desde el
servidor web. Lo cual no implica que esté cerrado el puerto ENTRANTE del
servidor SMTP, que es el que utilizas desde tu aplicación en VS2008 en tu PC
local.

Antonio Ortiz

unread,
Apr 24, 2009, 1:44:49 PM4/24/09
to

ok, ya tengo un poco mas de luz... pero existe alguna alternativa para crear
mi formulario de contacto?


gracias,

Antonio Ortiz
antonio(a)qsoluciones.net
www.qsoluciones.net/Antonio

"Alberto Poblacion" <earthling-quitae...@poblacion.org>
escribió en el mensaje news:%23iYNecK...@TK2MSFTNGP02.phx.gbl...

Juan T. Llibre

unread,
Apr 25, 2009, 8:54:49 AM4/25/09
to
re:
!> Dim basicAuthenticationInfo As New
!> System.Net.NetworkCredential(mie...@dominio.com, "MiClave")
!> smptClient.Credentials = basicAuthenticationInfo

Pregunta para tí...

¿ Porque estas configurando la autenticación asi ?

Basta con :

smtp.Credentials = New NetworkCredential("nombredeusuario", "ClavedeAcceso")
smtp.Send(mail)

Si el problema es que tu servidor de correo usa SSL, incluye esto :

smtp.EnableSsl = true;

...pero con

smtp.Credentials = New NetworkCredential("nombredeusuario", "ClavedeAcceso")

es generalmente suficiente.

re:
!> smptClient.Host = "smtpout.secureserver.net"

Imagino que esta linea debe ser :

smptClient.Host = "smtp.tuservidordemail.com"

La última cosa que debes verificar es si tu servidor de correo usa el puerto 25 para enviar emails.
Si usa otro ( el 587 es bastante comun ), debes cambiar el puerto en el código.

Usa esta referencia permanente de System.Net.Mail para muestras de código :

http://www.systemnetmail.com/


Juan T. Llibre, asp.net MVP
asp.net faq : http://asp.net.do/faq/
=========================
"Antonio Ortiz" <a...@aortiz.net> wrote in message news:eBLo$r3wJH...@TK2MSFTNGP03.phx.gbl...

Jose A. Fernandez

unread,
Apr 25, 2009, 10:26:24 PM4/25/09
to
Hola Antonio

Como te comenta Juan este sitio
http://www.systemnetmail.com/
te puede evacuar todas las dudas..con respecto a tu formulario

Ahora con respecto a la conectividad con su servidor web, solo te
podremos o dar tips por ejemplo
- si es un intranet a veces que el relay de correo desde otro server
que no sea el propio server de mail esta bloqueado para que no algunas
pc infectadas con algun spyware que envia spam no este haciendo de las
suyas, entonces verifica con tu admin del hosting te de las pautas
para el enviar de correo
- Si estas utilizando servidores fuera de la red, tambien verifica
que desde tu hosting te permitan conectarte a puertos 25
- Hay veces que el servidor mail tiene un firewall o algo que lo
protege para el reenvio desde una ip especifica... verificalo con tu
admin de webhosting

SI es un webhosting siempre te dan ejemplos de hacer estos formularios
de contacto con la mayoria de los lenguajes de servidor (asp.net, asp
clasico, php, java, etc)


Espero que te sirva de ayuda o guia
______________________
Jose A. Fernandez
blog: http://geeks.ms/blogs/fernandezja

On 25 abr, 09:54, "Juan T. Llibre" <nomailrepl...@nowhere.com> wrote:
> re:
> !> Dim basicAuthenticationInfo As New

> !> System.Net.NetworkCredential(miem...@dominio.com, "MiClave")


> !> smptClient.Credentials = basicAuthenticationInfo
>
> Pregunta para tí...
>
> ¿ Porque estas configurando la autenticación asi ?
>
> Basta con :
>
> smtp.Credentials = New NetworkCredential("nombredeusuario", "ClavedeAcceso")
> smtp.Send(mail)
>
> Si el problema es que tu servidor de correo usa SSL, incluye esto :
>
> smtp.EnableSsl = true;
>
> ...pero con
>
> smtp.Credentials = New NetworkCredential("nombredeusuario", "ClavedeAcceso")
>
> es generalmente suficiente.
>
> re:
> !>  smptClient.Host = "smtpout.secureserver.net"
>
> Imagino que esta linea debe ser :
>
> smptClient.Host = "smtp.tuservidordemail.com"
>
> La última cosa que debes verificar es si tu servidor de correo usa el puerto 25 para enviar emails.
> Si usa otro ( el 587 es bastante comun ), debes cambiar el puerto en el código.
>
> Usa esta referencia permanente de System.Net.Mail para muestras de código :
>
> http://www.systemnetmail.com/
>
> Juan T. Llibre, asp.net MVP
> asp.net faq :http://asp.net.do/faq/
> =========================
>

> "Antonio Ortiz" <a...@aortiz.net> wrote in messagenews:eBLo$r3wJH...@TK2MSFTNGP03.phx.gbl...


>
> > hola soy nuevo por aqui, me podria ayudar ?
>
> > Tengo un formulario para contacto que envia un mensaje del usuario por email, en las pruebas me funciona correctamente
> > pero al subirlo a mi webserver me da error, el codigo es el siguiente:
>
> >        If (String.IsNullOrEmpty(Me.TxteMail.Text) Or String.IsNullOrEmpty(Me.txtMensaje.Text) Or _
> >            String.IsNullOrEmpty(Me.txtNombre.Text)) Then
> >            Me.lblMensaje.Text = "Favor de completar los datos"
> >            Exit Sub
> >        End If
> >        Me.lblMensaje.ForeColor = Drawing.Color.Aquamarine
> >        Me.lblMensaje.Text = ""
> >        Dim smptClient As New SmtpClient()
> >        Dim message As New MailMessage()
> >        Dim fromAddress As New MailAddress(em...@dominio.com)
> >        smptClient.Host = "smtpout.secureserver.net"
> >        smptClient.Port = 25
>

> >        Dim basicAuthenticationInfo As New System.Net.NetworkCredential(miem...@dominio.com, "MiClave")


>
> >        smptClient.Credentials = basicAuthenticationInfo
>
> >        'smptClient.UseDefaultCredentials = False
> >        With message
> >            .From = fromAddress

> >            .To.Add("miem...@dominio.com")

Antonio Ortiz

unread,
Apr 27, 2009, 4:00:46 PM4/27/09
to
Gracias por el interes y todo el apoyo, procedo a probar y verificar el
link.


saludos,


Antonio Ortiz
antonio(a)qsoluciones.net
www.qsoluciones.net/Antonio

"Jose A. Fernandez" <ferna...@gmail.com> escribi� en el mensaje
news:70391c35-367f-4e98...@f1g2000prb.googlegroups.com...
Hola Antonio

> Pregunta para t�...
>
> � Porque estas configurando la autenticaci�n asi ?


>
> Basta con :
>
> smtp.Credentials = New NetworkCredential("nombredeusuario",
> "ClavedeAcceso")
> smtp.Send(mail)
>
> Si el problema es que tu servidor de correo usa SSL, incluye esto :
>
> smtp.EnableSsl = true;
>
> ...pero con
>
> smtp.Credentials = New NetworkCredential("nombredeusuario",
> "ClavedeAcceso")
>
> es generalmente suficiente.
>
> re:
> !> smptClient.Host = "smtpout.secureserver.net"
>
> Imagino que esta linea debe ser :
>
> smptClient.Host = "smtp.tuservidordemail.com"
>

> La �ltima cosa que debes verificar es si tu servidor de correo usa el

> puerto 25 para enviar emails.
> Si usa otro ( el 587 es bastante comun ), debes cambiar el puerto en el

> c�digo.
>
> Usa esta referencia permanente de System.Net.Mail para muestras de c�digo

> > Me.lblMensaje.Text = "El correo fue enviado con �xito"

Antonio Ortiz

unread,
Apr 27, 2009, 5:08:37 PM4/27/09
to
Hola Juan:

Disculpa que no te habia contestado, te comento que el formulario de
contacto lo he descargado de un ejemplo y solamente lo adapte con mis
parametros. Procedo a contestarte con lo que entiendo, entre lineas de tu
mensaje.


Antonio Ortiz
antonio(a)qsoluciones.net
www.qsoluciones.net/Antonio

"Juan T. Llibre" <nomail...@nowhere.com> escribi� en el mensaje
news:u1jkIUax...@TK2MSFTNGP04.phx.gbl...


> re:
> !> Dim basicAuthenticationInfo As New
> !> System.Net.NetworkCredential(mie...@dominio.com, "MiClave")
> !> smptClient.Credentials = basicAuthenticationInfo
>

> Pregunta para t�...
>
> � Porque estas configurando la autenticaci�n asi ?


>
> Basta con :
>
> smtp.Credentials = New NetworkCredential("nombredeusuario",
> "ClavedeAcceso")
> smtp.Send(mail)
>

*** Ambos codigos son 100% equivalentes, solo que en tu caso creas una
instancia en la asignacion y te ahorras la variable
'basicAuthenticationInfo' que yo utilizo. ***


> Si el problema es que tu servidor de correo usa SSL, incluye esto :
>
> smtp.EnableSsl = true;
>


*** intentare probar esto ***

> ...pero con
>
> smtp.Credentials = New NetworkCredential("nombredeusuario",
> "ClavedeAcceso")
>
> es generalmente suficiente.
>
> re:
> !> smptClient.Host = "smtpout.secureserver.net"
>
> Imagino que esta linea debe ser :
>
> smptClient.Host = "smtp.tuservidordemail.com"
>

*** asi es ***

> La �ltima cosa que debes verificar es si tu servidor de correo usa el

> puerto 25 para enviar emails.
> Si usa otro ( el 587 es bastante comun ), debes cambiar el puerto en el

> c�digo.
>

*** ya he probado todos los puertos permitidos por el servidor ***


> Usa esta referencia permanente de System.Net.Mail para muestras de c�digo

>> Me.lblMensaje.Text = "El correo fue enviado con �xito"

Antonio Ortiz

unread,
Apr 27, 2009, 5:47:33 PM4/27/09
to
Ya lo he resuelto!, muchas gracias a todos por su apoyo, les comento que la
solucion efectivamente era problema de puerto y servidor :(
Resulta que el servidor con el que yo contaba era para configurar un cliente
de correo y es por eso que podia enviar desde mi aplicacion local, pero al
subirlo no funcionaba... He buscado en preguntas y respuestas del hosting y
tienen un ejemplo donde utilizan 'otro' servidor para enviar correo desde el
hosting. Vaya que lo busque en la documentacion y no lo encontre.


gracias de nuevo,

Antonio Ortiz
antonio(a)qsoluciones.net
www.qsoluciones.net/Antonio


"Jose A. Fernandez" <ferna...@gmail.com> escribi� en el mensaje
news:70391c35-367f-4e98...@f1g2000prb.googlegroups.com...
Hola Antonio

> Pregunta para t�...
>
> � Porque estas configurando la autenticaci�n asi ?


>
> Basta con :
>
> smtp.Credentials = New NetworkCredential("nombredeusuario",
> "ClavedeAcceso")
> smtp.Send(mail)
>
> Si el problema es que tu servidor de correo usa SSL, incluye esto :
>
> smtp.EnableSsl = true;
>
> ...pero con
>
> smtp.Credentials = New NetworkCredential("nombredeusuario",
> "ClavedeAcceso")
>
> es generalmente suficiente.
>
> re:
> !> smptClient.Host = "smtpout.secureserver.net"
>
> Imagino que esta linea debe ser :
>
> smptClient.Host = "smtp.tuservidordemail.com"
>

> La �ltima cosa que debes verificar es si tu servidor de correo usa el

> puerto 25 para enviar emails.
> Si usa otro ( el 587 es bastante comun ), debes cambiar el puerto en el

> c�digo.
>
> Usa esta referencia permanente de System.Net.Mail para muestras de c�digo

> > Me.lblMensaje.Text = "El correo fue enviado con �xito"

Jose A. Fernandez

unread,
Apr 29, 2009, 2:36:12 PM4/29/09
to
Hola Antonio

Me alegro que "llegaras a buen puerto"
Y ademas gracias por comentarnos donde estaba el problema y como
hiciste para resolverlo.

Saludos.


______________________
Jose A. Fernandez
blog: http://geeks.ms/blogs/fernandezja

On Apr 27, 6:47 pm, "Antonio Ortiz" <a...@aortiz.net> wrote:
> Ya lo he resuelto!, muchas gracias a todos por su apoyo, les comento que la
> solucion efectivamente era problema de puerto y servidor :(
> Resulta que el servidor con el que yo contaba era para configurar un cliente
> de correo y es por eso que podia enviar desde mi aplicacion local, pero al
> subirlo no funcionaba... He buscado en preguntas y respuestas del hosting y
> tienen un ejemplo donde utilizan 'otro' servidor para enviar correo desde el
> hosting. Vaya que lo busque en la documentacion y no lo encontre.
>
> gracias de nuevo,
>
> Antonio Ortiz
> antonio(a)qsoluciones.netwww.qsoluciones.net/Antonio
>

> "Jose A. Fernandez" <fernande...@gmail.com> escribió en el mensajenews:70391c35-367f-4e98...@f1g2000prb.googlegroups.com...

> > Pregunta para tí...
>
> > ¿ Porque estas configurando la autenticación asi ?


>
> > Basta con :
>
> > smtp.Credentials = New NetworkCredential("nombredeusuario",
> > "ClavedeAcceso")
> > smtp.Send(mail)
>
> > Si el problema es que tu servidor de correo usa SSL, incluye esto :
>
> > smtp.EnableSsl = true;
>
> > ...pero con
>
> > smtp.Credentials = New NetworkCredential("nombredeusuario",
> > "ClavedeAcceso")
>
> > es generalmente suficiente.
>
> > re:
> > !> smptClient.Host = "smtpout.secureserver.net"
>
> > Imagino que esta linea debe ser :
>
> > smptClient.Host = "smtp.tuservidordemail.com"
>

> > La última cosa que debes verificar es si tu servidor de correo usa el


> > puerto 25 para enviar emails.
> > Si usa otro ( el 587 es bastante comun ), debes cambiar el puerto en el

> > código.
>
> > Usa esta referencia permanente de System.Net.Mail para muestras de código

> > > Me.lblMensaje.Text = "El correo fue enviado con éxito"

0 new messages