/// <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); } }
/// <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; } }