• RSS
  • Facebook
  • Twitter
  • Linkedin
  • Google +
  • Youtube

Hoy en día es necesario que nuestras aplicaciones web envíen correos electrónicos para comunicarnos con los usuarios. En Domitienda.com lo sabemos y por eso queremos dejaros este pequeño tutorial explicando como podéis hacer esto mismo con vuestro dominio y unas pocas líneas en c#.

Primero tendríamos que crear una cuenta de correo en nuestro dominio.

Para ello tan solo sería necesario acceder al Panel de Control Plesk > Inicio > [tu dominio.com] > Correo > Nueva cuenta de correo. Nosotros hemos creado la cuenta “envio@domitienda.com” con contraseña “contraseñafalsa1234”.

Si nuestra aplicación web esta desarrollada en ASP o PHP podemos utilizar distintos componentes (como el ASPMail, del que hablaré en otra ocasión), en este ejemplo vamos a utilizar un sencillo código en c# para usar con nuestra web en ASP .Net.

Hosting windows asp.net

private void btnEnviar_Click(object sender, EventArgs e){

//Creamos un nuevo Objeto de Mensaje

MailMessage oMsg = new MailMessage();

//Desde (correo electronico desde la que enviamos)

oMsg.From = new MailAddress(“envio@domitienda.com”);

//Hasta (direccion de correo electronico a la que queremos enviar)

oMsg.To.Add(“cuentaDestino@domitienda.com”);

//Copia Carbon (direccion de correo electronico que queremos que reciba una copia)

oMsg.Bcc.Add(“copia@domitienda.com”);

//Asunto

oMsg.Subject = “Envio de mail desde codigo”;

//Cuerpo del Mensaje

oMsg.Body = “Mensaje enviado desde el codigo fuente de mi aplicación .net”;

//Creamos una instancia de cliente SMTP para el envio del mensaje

//Nombre del servidor SMTP de envio.

//Normalmente es “mail.[tu dominio]

SmtpClient smtp = new SmtpClient(“mail.domitienda.com”);

//Como nuestro servidor requiere autenticación, tenemos que especificar las credenciales

//Para ello tenemos que autenticarnos con nuestra cuenta de correo y contraseña

smtp.Credentials = new System.Net.NetworkCredential(“envio@domitienda.com”,

“contraseñafalsa1234?);

//Y Enviamos el mensaje!!!        

smtp.Send(oMsg);

}

Como podéis ver en el código anterior, es necesario autenticarse en nuestros servidores de correo para poder realizar el envío correctamente.

Para que este código funcione correctamente es necesario que añadais lo siguiente en la cabecera de vuestro fichero .cs:

using System.Net.Mail;

¿Util? ¡Espero que sí!

The following two tabs change content below.
Empresa de Hosting & IT Consulting

Latest posts by Domitienda (see all)

Categorías: tutorial

17 Responses so far.

  1. Muy bien por lo del ejemplo para los programadores de C#

    Aquí dejo otro ejemplo en VB

    Protected Sub btnEnviar_Click(ByVal sender As Object, ByVal e As System.EventArgs)
    Dim correo As New System.Net.Mail.MailMessage()
    correo.From = New System.Net.Mail.MailAddress(txtDe.Text)
    correo.To.Add(txtPara.Text)
    correo.Subject = txtAsunto.Text
    txtTexto.Text &= vbCrLf & vbCrLf & _
    “Fecha y hora GMT: ” & _
    DateTime.Now.ToUniversalTime.ToString(“dd/MM/yyyy HH:mm:ss”)
    correo.Body = txtTexto.Text
    correo.IsBodyHtml = False
    correo.Priority = System.Net.Mail.MailPriority.Normal
    ‘———————————————
    ‘ Estos datos debes rellenarlos correctamente para que no te pase lo que me sucedio a mi
    ‘———————————————
    Dim smtp As New System.Net.Mail.SmtpClient(“mail.domitienda.com”)
    smtp.Credentials = New System.Net.NetworkCredential(“envios@domitienda.com”, “contraseñafalsa1234”)
    ‘smtp.EnableSsl = False

    Try
    smtp.Send(correo)
    LabelError.Text = “Mensaje enviado satisfactoriamente”
    Catch ex As Exception
    LabelError.Text = “ERROR: ” & ex.Message
    End Try

    End Sub

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
    ‘ Esto (en ASP.NET 2.0) no se ejecuta… si AutoEventWireup=”false”
    If Not IsPostBack Then
    txtTexto.Text = “Hola,” & vbCrLf & _
    “Esto es una prueba de envio de correo usando ASP.NET 2.0 con Visual Basic” & vbCrLf & _
    “Saludos!!!”
    LabelError.Text = “”
    End If
    End Sub

    Prueba para enviar correo usando ASP.NET 2.0 (Visual Basic)

    Prueba de envio de correo con ASP.NET 2.0 (C#)

  2. Victor dice:

    ¡Muchas gracias Joel!

    Espero que tu ejemplo les sea útil a los usuario de Visual Basic.

    Un saludo!
    Víctor

  3. juanito dice:

    muy bueno

  4. Behelmot dice:

    El codigo anterior me funciona cuando envio correos electronicos en la Intranet (con su respectivo servidor de correo), pero me da el siguiente error cuando envio del From (correo interno) al to (correo externo como gmail o hotmail por ejemplo). El error es el siguiente:
    ERROR: Mailbox unavailable. The server response was: 5.7.1 Unable to relay for mzuniga15@gmail.com

  5. Víctor dice:

    Hola Behelmot,

    si eres cliente de domitienda envía un correo a soporte@businet-isp.com indicándonos tu dominio, cuentas y pass desde la que envías, servidor smtp y la cuenta de destino para que podamos realizar una traza del envía de correo y así poder saber exactamente lo que ocurre.

    Un saludo!

  6. jose dice:

    Probando el envio de correos

  7. Javier dice:

    Hola gracias por tu sitio es sumamente interesante, nos ayuda mucho, queremos que nos sugieras en que servidores podemos correr una aplicación web (portal bancario) realizada en ASP.NET, o nos proporciones direcciones para conseguir información al respecto.

    Saludos!!!
    Desde ya gracias…

  8. Víctor dice:

    Buenos días Javier!

    Pásate por domitienda.com y échale un ojo a los planes a partir del Básico.

    Tenemos soporte para ASP .NET 3.5 (y anteriores) y SQL SERVER 2005 desde 4.95€ al mes!

    No te arrepentirás 😉

  9. Oscar dice:

    Este codigo me funciona cuando, lo corro desde la consola de Visual Studio y al publicarlo en una maquina XP, que esta bajo un dominio.
    El Problema me da cuando monto a aplicacion en un servidor, y me devuelve el siguiente mensaje de error: System.Net.Mail.SmtpException: Error al enviar correo. —> System.Net.WebException: No es posible conectar con el servidor remoto —> System.Net.Sockets.SocketException: No se ha podido establecer conexión ya que el equipo de destino ha denegado activamente dicha conexión 10.0.0.208:25 en System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) en System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP) en System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception) — Fin del seguimiento de la pila de la excepción interna — en System.Net.ServicePoint.GetConnection(PooledStream PooledStream, Object owner, Boolean async, IPAddress& address, Socket& abortSocket, Socket& abortSocket6, Int32 timeout) en System.Net.PooledStream.Activate(Object owningObject, Boolean async, Int32 timeout, GeneralAsyncDelegate asyncCallback) en System.Net.PooledStream.Activate(Object owningObject, GeneralAsyncDelegate asyncCallback) en System.Net.ConnectionPool.GetConnection(Object owningObject, GeneralAsyncDelegate asyncCallback, Int32 creationTimeout) en System.Net.Mail.SmtpConnection.GetConnection(String host, Int32 port) en System.Net.Mail.SmtpTransport.GetConnection(String host, Int32 port) en System.Net.Mail.SmtpClient.GetConnection() en System.Net.Mail.SmtpClient.Send(MailMessage message)

    el servidor en donde estoy publicando la aplicacion es diferente al servidor de correo y al servidor de dominio

  10. Víctor dice:

    Buenas Noches Oscar,

    así a bote pronto se me ocurre que hayas puesto mal la autenticación o que el servidor de correo esté bloqueando la IP del servidor web desde el que lanzas las peticiones por alguna razón.

    Habla con la gente de soporte de tu empresa de Hosting actual que te podrán ayudar más que yo… o si no vente a domitienda con nosotros 😉

  11. KARLA dice:

    hola muchas gracias por aydarme

  12. Josué Cedeño dice:

    Hola,

    ¿Cómo puedo enviar un archivo .html o .aspx dentro del mensaje de correo pero como cuerpo del mensaje, no como archivo adjunto, es decir, según el ejemplo original: oMsg.Body = miUri?

    Gracias

  13. Pablo dice:

    Hola,
    Estoy trabajando con VS.Net 2008 con c# haciendo una página para enviar Mails con archivos adjuntos y tengo problema con el metodo send, al enviar el mail con un archivo adjunto de (2MB) mas o menos ocurre la siguiente error “Se exedio el tiempo de espera de la operación”
    ¿Cual puede ser el error?
    Muchas Gracias.

  14. Hola Buenas tardes maestro soy lourdes. Espero y este bien.
    Deseo y siga mejor de su garganta y de su oido.
    Q SEMEJORE.Hasta luego

  15. Carlos dice:

    Hola he probado poniendo . From correo1@dominioA.com y en credenciales “correo2@dominioB.com” y “suPassword” pero cuando el correo llega , lo hace con from = correo2@dominioB y no el que puse correo1@dominioA.com, yo se que si se podia.

    Me pueden ayudar?

    Gracias.

  16. botas ugg dice:

    según el ejemplo original: oMsg.Body = miUri?

Deja un comentario