ENVIAR MAIL DESDE MVC
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
Abrimos nuestra Herramienta de Desarrollo
- Archivo –> Nuevo –> Proyecto
Crearemos un nuevo Proyecto
Plantilla MVC
Una vez creado el proyecto.
Nos situaremos en el arbol derecho de carpetas y veremos la carpeta Views, sobre ella, crearemos la Zona «EnviarCorreo«.
- En su interior crearemos dos vistas,
- Vista Index (Solo contiene un ActionLink que le redirige) –> A la página EnviarCorreo
- <div class=»navbar-collapse collapse»>
<ul class=»nav navbar-nav»>
<li>@Html.ActionLink(«Enviar Correo», «EnviarCorreo», «EnviarCorreo»)</li>
</ul>
</div>
- <div class=»navbar-collapse collapse»>
- Vista Index (Solo contiene un ActionLink que le redirige) –> A la página EnviarCorreo
@Html.ActionLink(«Nombre que aparecera visualmente, el que queramos«, «Nombre de la zona» , «Nombre de la vista«)
- Vista Enviar Correo (Contiene el formulario Web) Que es el siguiente:
- Muy importante la etiqueta «name» recogera la informacion de las cajatas (input) para mandar la informacion al controlador «EnviarCorreoController«
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).
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).
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
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
Hola, muy bueno tu curso felicidades.
quisiera saber si sabes por que me da el siguiente error
https://uploads.disquscdn.com/images/11d089aeb1da0b628e8105b8b53e32b6f482d25bf0306b3d005fbfb0fa6136a5.png