Пример #1
0
 /// <summary>
 /// Función para limpiar los valores que se usan con el envio de correos
 /// </summary>
 /// <param name="Errores"></param>
 /// <remarks></remarks>
 public void LimpiaValoresEmail()
 {
     try {
         _De       = "";
         _NombreDe = "";
         if (_Para.Count > 0)
         {
             _Para.Clear();
         }
         if (NombreCC.Count > 0)
         {
             NombreCC.Clear();
         }
         if (ConCopia.Count > 0)
         {
             ConCopia.Clear();
         }
         if (ConCopiaOculta.Count > 0)
         {
             ConCopiaOculta.Clear();
         }
         _Asunto = "";
         if (RutaArchivosAdjuntos.Count > 0)
         {
             RutaArchivosAdjuntos.Clear();
         }
         CuerpoEmail = "";
         if (CuerpoEmail_2.Length > 0)
         {
             CuerpoEmail_2.Clear();
         }
         ServidorSMTP    = "";
         _Prioridad      = "";
         _EmailRespuesta = "";
         Puerto          = "";
         Login           = "";
         Password        = "";
     }
     catch (Exception ex)
     {
         throw new InvalidOperationException(ex.Message);
     }
 }
Пример #2
0
        /// <summary>
        /// Funión que envía los emails
        /// </summary>
        /// <param name="Errores"></param>
        /// <returns></returns>
        public bool Enviar()
        {
            try
            {
                bool enviado = false;

                MailMessage message = new MailMessage();
                MailAddress from;

                // Se agrega el remitente
                if (_NombreDe == "")
                {
                    from = new MailAddress(_De);
                }
                else
                {
                    from = new MailAddress(_De, _NombreDe);
                }
                message.From = from;

                // Se agregan los destinatarios
                if (_Para.Count > 0)
                {
                    MailAddress too;
                    for (int cuenta = 0; cuenta < _Para.Count; cuenta++)
                    {
                        too = new MailAddress(_Para[cuenta].ToString());
                        message.To.Add(too);
                    }
                    ;
                }

                // Si posee valores CC
                if (ConCopia.Count > 0)
                {
                    MailAddress cc;
                    for (int cuenta = 0; cuenta < ConCopia.Count; cuenta++)
                    {
                        if (NombreCC.Count == 0)
                        {
                            cc = new MailAddress(ConCopia[cuenta].ToString());
                        }
                        else
                        {
                            cc = new MailAddress(ConCopia[cuenta].ToString(), NombreCC[cuenta].ToString());
                        }
                        message.CC.Add(cc);
                    }
                }

                // Si posee valoers Bcc (Copia oculta)
                if (ConCopiaOculta.Count > 0)
                {
                    MailAddress bcc;
                    for (int cuenta = 0; cuenta < ConCopia.Count; cuenta++)
                    {
                        bcc = new MailAddress(ConCopiaOculta[cuenta].ToString());
                        message.Bcc.Add(bcc);
                    }
                }

                // Se le agrega el asunto
                if ((_Asunto != ""))
                {
                    message.Subject = _Asunto;
                }

                // Si posee adjuntos
                if (RutaArchivosAdjuntos.Count > 0)
                {
                    Attachment data;
                    for (int cuenta = 0; cuenta < RutaArchivosAdjuntos.Count; cuenta++)
                    {
                        data = new Attachment(RutaArchivosAdjuntos[cuenta].ToString());
                        message.Attachments.Add(data);
                    }
                }

                // El cuerpo del email
                if (CuerpoEmail != "")
                {
                    message.Body = CuerpoEmail;
                }
                else
                {
                    if (CuerpoEmail_2.ToString() != "")
                    {
                        message.Body = CuerpoEmail_2.ToString();
                    }
                }

                // Se le asigna el tipo de vista escogido (Por defecto es PLAIN/TEXT)
                if (TipoVistaEscogida)
                {
                    message.AlternateViews.Add(TipoDeVista);
                }

                // La prioridad de entrega
                switch (_Prioridad)
                {
                case "":
                    message.Priority = MailPriority.Normal;
                    break;

                case "ALTA":
                    message.Priority = MailPriority.High;
                    break;

                case "BAJA":
                    message.Priority = MailPriority.Low;
                    break;

                case "NORMAL":
                    message.Priority = MailPriority.Normal;
                    break;
                }

                //Se especif (ica el acuse de recibo
                if (AcuseRecibo)
                {
                    message.Headers.Add("Disposition-Notification-To", _De);
                }

                // El email de respuesta (ai aplica)
                if (_EmailRespuesta != "")
                {
                    message.ReplyToList.Add(new MailAddress(_EmailRespuesta));
                }

                SmtpClient client = new SmtpClient(ServidorSMTP);
                if (Puerto != "")
                {
                    client.Port = int.Parse(Puerto);
                }
                client.EnableSsl             = EnableSsl;
                client.UseDefaultCredentials = UseDefaultCredentials;
                if (Login != "" && Password != "")
                {
                    client.Credentials = new NetworkCredential(Login, Password);
                }

                client.Timeout = 30000; // Tiempo en milisegundos para el timeout
                client.Send(message);
                enviado = true;
                return(enviado);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }