Como dice el título del artículo, hoy les traigo la forma de mandar una web por correo.
Si leyeron el artículo “Como enviarme por correo los errores que lanza mi aplicación. c#.net ” ya estarán al tanto de como mandar correos, así que voy a enfatizar más en como capturar la web que queremos enviar.
Lo cual haremos utilizando este simple código:

    ///

<summary>
    /// Lee la web seleccionada y la lleva a código
    /// </summary>


    /// <returns></returns>
    private static List<string> LeerWeb(string urlweb)
    {
        //creamos un cliente web
        var client = new WebClient();
        //leemos la web
        Stream d = client.OpenRead(urlweb);
        if (d != null)
        {
            //creamos un lector
            var r = new StreamReader(d);
            //Una lista de string que contendrá cada línea de código de la web leida
            var lines = new List<string>
            {
                r.ReadLine()
            };
            while (lines.Last() != null) // mientras exista contenido
            {
                lines.Add(r.ReadLine()); // para seguir leyendo las otras líneas de la página
            }
            d.Close();
            return lines;
        }
        return null;
    }

Y luego al código para mandar el correo se le hacen unas modificaciones:

public static void Email(string urlweb)
    {
        // en esta variable guardamos el resultado del método que lee la web dada
        var l = LeerWeb(urlweb);
        string body = "";
        //llenamos el cuerpo del correo con las líneas que retorno el método
        for (int i = 0; i < l.Count; i++)
        {
            body += l[i];
        }
        //Aqui ya es lo mismo que vimos en el artículo que mencione anteriormente
        var message = new MailMessage("usuarioqueenvia@gmail.com", "usuarioquerecibe@yahoo.com");
        message.Subject = "Envio de una página web";
        message.Body = body;
        //Aquí le decimos que el cuerpo del mensaje es de tipo text/html.
        var mimeType = new ContentType("text/html");
        var alternate = AlternateView.CreateAlternateViewFromString(body, mimeType);
        message.AlternateViews.Add(alternate);
        var smtpMail = new SmtpClient("servpegasus");
        smtpMail.Send(message);

    }
 

Y con esto ya podemos mandar una página web por correo a quien queramos. Solo tenemos que después en algún lugar de nuestro código llamar al método Email (en este caso) y darle la dirección de la web.

Ejemplo:

EnviarCorreo.Email("https://letslearntechtogether.wordpress.com");

Nos vemos.

Anuncios