none
Enviar Correos en Aplicacion MVC 3 RRS feed

  • Pregunta

  • Buenos dias:

    Tengo una aplicacion desarrollada en MVC 3 y necesito habilitar una opcion que pueda enviar correos con archivos ajuntos y no tengo mucha idea de esto puesto que soy nuevo en MVC.

    ¿Alguien tiene alguna idea de como puedo realizarlo?

    Saludos

    martes, 19 de junio de 2012 14:03

Respuestas

  • > creo cajas de texto, las asigno a variables

    Sí, pero eso de textbox1.Text no existe en MVC. Eso será Webforms en todo caso. En MVC no tenemos controles de servidor, por lo tanto para crear un textbox debes:

    • Crear un <input type="text" /> en la vista
    • Darle un name xxx
    • Crear una acción del controlador que reciba o un parámetro llamado xxx o un parámetro (llamado como sea) de una clase que tenga una propiedad llamada xxx.
    • Usar este parámetro para acceder al valor del textbox.

    Saludos!


    Eduard Tomàs Blog: http://geeks.ms/blogs/etomas -- Twitter: eiximenis


    miércoles, 20 de junio de 2012 6:47

Todas las respuestas

  • Al igual que en cualquier aplicación .NET puedes hacer uso del namespace System.Net.Mail y sus clases como en este ejemplo

    http://www.devjoker.com/contenidos/Articulos/291/Enviar-email-con-C.aspx


    Vota mi respuesta si te ha sido útil. Gracias.

    martes, 19 de junio de 2012 17:32
  • Una duda

    MailMessage msg = new MailMessage();

    msg.To = "devjoker@djk.com";

    msg.From = "Administrador@djk.com";

    msg.Subject = "El asunto del mail";

    msg.Body = "Este es el contenido del email";

    msg.Priority = MailPriority.High;

    Para susituir tus valores predeterminados y hacer que el usuario los escriba, creo cajas de texto, las asigno a variables y estas mismas a su vez las asigno a loa atributos??

    ejemplo

    string destino;

    textbox1.Text=destino;

    MailMessage msg = new MailMessage();

    msg.To = destino;

    ??????

    Saludos

    martes, 19 de junio de 2012 18:01
  • string destino;

    textbox1.Text=destino;

    MailMessage msg = new MailMessage();

    msg.To = destino;

    Si haces eso, el destino siempre estará vacío; de hecho, el compilador se quejará de que usas una variable sin inicializarla. Habría que poner la asignación al revés:

    destino = textbox1.Text;

    Pero fíjate en que esto presume que textBox1 es un control de asp.net y que ese código está en el postback de la página. Todo esto únicamente puede hacerse en una página .aspx convencional. Lo digo porque has puesto la pregunta en el foro de MVC, y con MVC no se trabaja de esta manera.

    miércoles, 20 de junio de 2012 5:56
  • > creo cajas de texto, las asigno a variables

    Sí, pero eso de textbox1.Text no existe en MVC. Eso será Webforms en todo caso. En MVC no tenemos controles de servidor, por lo tanto para crear un textbox debes:

    • Crear un <input type="text" /> en la vista
    • Darle un name xxx
    • Crear una acción del controlador que reciba o un parámetro llamado xxx o un parámetro (llamado como sea) de una clase que tenga una propiedad llamada xxx.
    • Usar este parámetro para acceder al valor del textbox.

    Saludos!


    Eduard Tomàs Blog: http://geeks.ms/blogs/etomas -- Twitter: eiximenis


    miércoles, 20 de junio de 2012 6:47
  • Excelente Eduard, de desarolloweb verdad??

    Jeje estoy viendo tus webcast de MVC pero todavia no me quedan cosas muy claras, pero muy bien en general

    Gracias por la ayuda un saludo

    miércoles, 20 de junio de 2012 13:58
  • >Eduard, de desarolloweb verdad??

    Sí, jejeeee... :)

    Encantado de que los webcasts te sean útiles, de eso se trata! ;-)

    Saludos!


    Eduard Tomàs Blog: http://geeks.ms/blogs/etomas -- Twitter: eiximenis

    miércoles, 20 de junio de 2012 14:47
  • Mi querido Eduard:

    Tengo un gran, gran problema al implementar la sugerencia que me dieron de envio de correos en MVC, la verdad desde mi experiencia con .NET es para mi algo complejo, estaba acostumbrado a programar webservices o aplicaciones Web con interfaz osea un ASPX, pero este modo de programar esta medio extraño para mi y por mas que le doy vueltas al asunto en foros y con tutos, pues la verdad no.

    Si no es molesta, tendras un ejemplo con codigo de como puedo enviar correos en MVC, te lo agradecere bastante

    Saludos

    jueves, 21 de junio de 2012 13:58
  • AYUUUUUUUUUUUUUUDA, ESTOY CREANDO UNA PRUEBA DE ENVIO DE CORREOS, PERO ME MARCAUN ERROR AL GENERAR LA VISTA

    ESTE ES MI CODIGO

    using System; using System.Collections.Generic; using System.Linq; using System.Net.Mail; using System.Web; using System.Web.Mvc; namespace MvcApplication3.Controllers { public class CorreosController : Controller { static void Main(string[] args) { MailMessage msg = new MailMessage(); msg.To.Add (new MailAddress("programador.net@safedata.com.mx")); msg.From = new MailAddress("zbarrerar@gmail.com"); msg.Subject = "El asunto del mensaje(2.0)"; msg.Body = "El contenido del mensaje"; SmtpClient clienteSmtp = new SmtpClient("WIN02"); try { clienteSmtp.Send(msg); } catch (Exception ex) { Console.Write(ex.Message); Console.ReadLine(); } } public ActionResult Index() { return View(); } } NO SE COMO CREAR UNA VISTA NI COMO ACCEDER A ELLA SIN QUE ME MARQUE ERROR

    AYUDA PLEASE

    jueves, 21 de junio de 2012 22:38
  • Bueno, el código que has puesto es el de un Controlador, y dentro de él lo único que has hecho es pegar el método Main de una aplicación de consola, cosa que es legal (no debe dar ningún error), pero no sirve para nada. En cualquier caso, no tiene nada que ver con una Vista.

    Si quieres que el mismo código del Main se pueda ejecutar en MVC, trasládalo a un método de acción, por ejemplo al Index, encima del "return View()". De esta forma, podrás ejecutarlo navegando a la dirección del Index (misitioweb/Home/Index). Por cierto, ten presente que si hay un error y "salta" al "catch", no se verá nada en la aplicación web, dado que usas Console para mostrarlo.

    viernes, 22 de junio de 2012 5:31
  • NECESITO CONVERTIR ESTA APLICACION QUE YA ESA FUNCIONANDO EN ASP.NET, AL PATRON MVC 3, NO SE COMO HACER QUE LOS TEXT BOX Y LOS BOTONES QUE OCUPO SE CREEN EN LAS VISTAS, A VERDAD NO SOY MUY BUENO EN MVC, ASI QUE ME GUSTARIA QUE ME AYUDARAN UN POCO POR FAVOR.

    using System;
    using System.Net.Mail;
    
    namespace BulkEmail
    {
        public partial class _Default : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
    
            }
    
            protected void btnSend_Click(object sender, EventArgs e)
            {
                try
                {
                    string[] to = txtTo.Text.Split(';');
    
                    foreach (string emailAdd in to)
                    {
                        if (!string.IsNullOrEmpty(emailAdd))
                            SendEmail(emailAdd);
                    }
                    
                    txtTo.Text = "";
                    txtSubject.Text = "";
                    txtMessage.Text = "";
                    lblSent.Text = "Message sent.";
                    MessagePopUp.Show();
                }
                catch
                {
                    lblSent.Text = "Message failed.";
                    MessagePopUp.Show();
                }
            }
    
            private void SendEmail(string EmailAddress)
            {
                MailMessage mail = new MailMessage();
                
                mail.To.Add(EmailAddress);
                mail.From = new MailAddress("zbarrerar@gmail.com");
                mail.Subject = txtSubject.Text;
                mail.Body = txtMessage.Text;
    
                mail.IsBodyHtml = true;
                SmtpClient smtp = new SmtpClient();
                smtp.Host = "smtp.gmail.com";
                smtp.Credentials = new System.Net.NetworkCredential("zbarrerar@gmail.com", "xtraslash");
                smtp.EnableSsl = true;
                smtp.Send(mail);
            }
        }
    }
    

    GRACIAS

    viernes, 22 de junio de 2012 18:06