Este ejemplo practico consiste en una web de mail realizada con una plantilla MVC sobre Visual Studio 2015

Utilizaremos las siguientes herramientas para realizar el envió de correo desde una aplicación web: Estará desarrollado en lenguaje C#

  • Sistema Operativo: Windows 10
  •  Herramienta de Desarrollo: Visual Studio 2015 (Microsoft)
  • Navegador: Google Chrome
PortadaVisual

Visual Studio 2015

Abrimos nuestra Herramienta de Desarrollo

  • Archivo –> Nuevo –> Proyecto

Crearemos un nuevo Proyecto
MVC
Plantilla MVC
Mvc2
Una vez creado el proyecto.

Nos situaremos en el arbol derecho de carpetas y veremos la carpeta Views, sobre ella, crearemos la Zona “EnviarCorreo“.

  1. En su interior crearemos dos vistas,
    1. Vista Index (Solo contiene un ActionLink que le redirige) –> A la página EnviarCorreo
      1. <div class=”navbar-collapse collapse”>
        <ul class=”nav navbar-nav”>
        <li>@Html.ActionLink(“Enviar Correo”, “EnviarCorreo”, “EnviarCorreo”)</li>
        </ul>
        </div>

@Html.ActionLink(“Nombre que aparecera visualmente, el que queramos“, “Nombre de la zona” , “Nombre de la vista“)

  1. Vista Enviar Correo (Contiene el formulario Web) Que es el siguiente:
  2. Muy importante la etiqueta “name” recogera la informacion de las cajatas (input) para mandar la informacion al controlador “EnviarCorreoController
Vista

Vista: EnviarCorreo

Después Nos iremos a la carpeta Controllers y nos creamos un controlador(una clase) llamada igual que la Zona y a continuación escrito Controllers

Ejemplo:

  • EnviarCorreoControllers –> Nuestra zona se llama EnviarCorreo

Arriba en el using, le añadiremos:

  • using System.Net.Mail; –> El System.Net.Mail EL espacio de nombres contiene clases utilizadas para enviar correo electrónico a un servidor de Protocolo Simple de transferencia de correo (SMTP).
Captura

EnviarCorreoController

y el siguiente Código

En el controlador: Controlar todos los errores que se puedan producir durante la ejecución del método de acción.

  • ActionResult: Obtener los valores para utilizar como argumentos del método de acción a través de Enviar Correo
    • Puede crear métodos de acción que devuelven un objeto de cualquier tipo, como una cadena, un entero o un valor booleano.

Estos tipos de valor devueltos se incluyen en un tipo ActionResult adecuado antes de representarse en la secuencia de respuesta

HttpPostedFileBase: Actúa como clase base para las clases que proporcionan acceso a los archivos individuales que ha cargado un cliente.

MailMessage: Representa un mensaje de correo electrónico que puede enviarse mediante la clase SmtpClient.

Attachment: Representa un archivo adjunto a un correo electrónico.

SmtpClient: Permite que las aplicaciones puedan  enviar correo electrónico mediante el protocolo Simple de transferencia de correo (SMTP).

1

EnviarCorreoController

Try, Catch:  Si el método que se ejecuta actualmente no contiene un bloque catch, CLR busca el método que llamó el método actual, y así sucesivamente hasta la pila de llamadas. Si no existe ningún bloque catch, CLR muestra al usuario un mensaje de excepción no controlada y detiene la ejecución del programa.

  • Crearemos Dentro de nuestro Proyecto una carpeta Temporal
  • Mi aplicación se llama Correo
  • C:\Users\Alvaro\Documents\Visual Studio 2015\Projects\Correo\Correo\Temporal

Exception: Para controlar la excepion y mostrar un mensaje de error

3

EnviarCorreoController

Capturamos en un ViewBag, la excepcion y la mostramos en la vista “EnviarCorreo” el error

<h3 style=”color:blue”>
@ViewBag.Mensaje
</h3>
<br />
<h3 style=”color:red”>
@ViewBag.Error
</h3>

Lanzamos la Aplicación.

Escribimos un mail desde la web, y vemos si ha llegado correctamente y se ha almacenado en la carpeta Temporal el archivo adjunto enviado desde la aplicacion MVC

En el siguiente vídeo podréis ver el ejemplo practico

 

AUTOR: Alvaro Bienvenido Sequera

CURSO:  Microsoft MCSD Web Applications + SharePoint Apps

CENTRO: Tajamar

AÑO ACADÉMICO: 2016-2017