/// <summary> /// Recoger la ruta donde se almacena la aplicacion /// </summary> /// <param name="removeFolder">Folder to remove inclusive the last "\"</param> /// <param name="Carpeta">Carpeta deseada dentro del servidor</param> /// <returns></returns> public string RutaCompleta(string removeFolder, string Carpeta) { archivos a = new archivos(); Carpeta = a.checkCarpeta(Carpeta); removeFolder = a.checkCarpeta(removeFolder); a = null; return(ApplicationPath + Carpeta.Replace(removeFolder, "")); }
/// <summary> /// Borrar el archivo en la ruta seleccionada /// </summary> /// <param name="removeFolder">Folder to remove inclusive the last "\"</param> /// <param name="nombreArchivo"></param> /// <param name="carpeta"></param> /// <returns></returns> public bool borrarArchivo(string removeFolder, string nombreArchivo, string carpeta) { archivos a = new archivos(); removeFolder = a.checkCarpeta(removeFolder); string strRuta = ApplicationPath + a.checkCarpeta(carpeta).Replace(removeFolder, ""); a = null; strRuta += nombreArchivo; return(borrarArchivo(strRuta)); }
/// <summary> /// comprobar que el archivo no existe en la ruta seleccionada /// </summary> /// <param name="removeFolder">Folder to remove inclusive the last "\"</param> /// <param name="nombreArchivo"></param> /// <param name="carpeta"></param> /// <returns></returns> public bool existeFichero(string removeFolder, string nombreArchivo, string carpeta) { bool bExsiste = false; archivos a = new archivos(); removeFolder = a.checkCarpeta(removeFolder); string strRuta = ApplicationPath + a.checkCarpeta(carpeta).Replace(removeFolder, "") + nombreArchivo; bExsiste = a.existeFichero(strRuta); a = null; return(bExsiste); }
/// <summary> /// Insertar texto dentro de una imagen /// </summary> /// <param name="file">Nombre imagen original</param> /// <param name="folder">Carpeta donde se encuentra y guardara la nueva imagen</param> /// <param name="Str_TextOnImage">Texto a incluir</param> /// <param name="StringColor">Color del texto</param> /// <param name="fuente">tipo de fuente a utilizar</param> /// <param name="posicion">posicion dentro de la imagen</param> /// <param name="horizontal">alineacion horizontal</param> /// <param name="vertical">alineacion vertial</param> /// <returns>Devuelve el nombre de la nueva imagen</returns> public static Image InsertarTextoImagen(string file, string folder, string Str_TextOnImage, Color StringColor, Font fuente, Point posicion, StringAlignment horizontal, StringAlignment vertical) { //creando el objeto de la imagen archivos a = new archivos(); string rutaImg = a.checkCarpeta(folder) + file; a = null; Image bitmap = (Image)Bitmap.FromFile(rutaImg); // set image //Dibujo la imagen Graphics graphicsImage = Graphics.FromImage(bitmap); //Establezco la orientación mediante coordenadas StringFormat stringformat = new StringFormat(); stringformat.Alignment = horizontal; stringformat.LineAlignment = vertical; Point MiPOS = new Point(); if (posicion.Y == 0 && posicion.X == 0) { MiPOS.Y = bitmap.Height - 25; MiPOS.X = 175; } else { MiPOS = posicion; } //modificar la imagen graphicsImage.DrawString(Str_TextOnImage, fuente, new SolidBrush(StringColor), MiPOS, stringformat); graphicsImage.Save(); return(bitmap); }
/// <summary> /// Insertar texto dentro de una imagen /// </summary> /// <param name="bitmap">Imagen a modificar</param> /// <param name="folder">Carpeta donde se encuentra y guardara la nueva imagen</param> /// <param name="Str_TextOnImage">Texto a incluir</param> /// <param name="StringColor">Color del texto</param> /// <param name="fuente">tipo de fuente a utilizar</param> /// <param name="posicion">posicion dentro de la imagen</param> /// <param name="horizontal">alineacion horizontal</param> /// <param name="vertical">alineacion vertial</param> /// <returns>Devuelve el nombre de la nueva imagen</returns> public static string InsertarTexto(Image bitmap, string folder, string Str_TextOnImage, Color StringColor, Font fuente, Point posicion, StringAlignment horizontal, StringAlignment vertical) { //creando el objeto de la imagen archivos a = new archivos(); string newFile = a.creaNombreFile(a.checkCarpeta(folder), "jpg", "txt"); a = null; //Dibujo la imagen Graphics graphicsImage = Graphics.FromImage(bitmap); //Establezco la orientación mediante coordenadas StringFormat stringformat = new StringFormat(); stringformat.Alignment = horizontal; stringformat.LineAlignment = vertical; Point MiPOS = new Point(); if (posicion.Y == 0 && posicion.X == 0) { MiPOS.Y = bitmap.Height - 25; MiPOS.X = 175; } else { MiPOS = posicion; } //modificar la imagen graphicsImage.DrawString(Str_TextOnImage, fuente, new SolidBrush(StringColor), MiPOS, stringformat); graphicsImage.Save(); //guardar la nueva imagen bitmap.Save(newFile); return(newFile); }
/// <summary> /// Recoger la ruta donde se almacena la aplicacion /// </summary> /// <param name="Carpeta">Carpeta deseada dentro del servidor</param> /// <returns></returns> public string RutaCompleta(string Carpeta) { archivos a = new archivos(); Carpeta = a.checkCarpeta(Carpeta); a = null; return(ApplicationPath + Carpeta); }
/// <summary> /// Borrar el archivo en la ruta seleccionada /// </summary> /// <param name="nombreArchivo"></param> /// <param name="carpeta"></param> /// <returns></returns> public bool borrarArchivo(string nombreArchivo, string carpeta) { archivos a = new archivos(); string strRuta = ApplicationPath + a.checkCarpeta(carpeta); a = null; strRuta += nombreArchivo; return(borrarArchivo(strRuta)); }
/// <summary> /// Save file in server. Return the name of file. /// </summary> /// <param name="removeFolder">Folder to remove inclusive the last "\"</param> /// <param name="NombreArchivo">Name of file</param> /// <param name="Archivo">File</param> /// <param name="HEX">Indica si el archivo esta en formato Hexadecimal</param> /// <param name="Carpeta">Folder to save</param> /// <param name="NombreDinamico">Generate dinamic name</param> /// <returns></returns> public string guardaDato(string removeFolder, string NombreArchivo, string Archivo, bool HEX, string Carpeta, bool NombreDinamico = false, string pre = "") { //string strRuta; string guardar = ""; archivos a = new archivos(); removeFolder = a.checkCarpeta(removeFolder); Carpeta = ApplicationPath + Carpeta.Replace(removeFolder, ""); guardar = a.guardaDato(NombreArchivo, Archivo, HEX, Carpeta, NombreDinamico, pre); a = null; return(guardar); }
/// <summary> /// Función genérica de envío de correo electrónico /// </summary> /// <param name="eMail">Mail del destinatario. Se admiten varias direccion separadas por ; La ultima tiene que tener ; para saber que esta formateado</param> /// <param name="Asunto">Asunto del envio del correo</param> /// <param name="cuerpoTexto">Texto que aparecera en el mensaje. Se admite HTML</param> /// <param name="empresaRemitente">Nombre de la empresa o persona que envia el mail</param> /// <param name="mailRemitente">Mail del remitente (opcional)</param> /// <param name="hostSMTP">Servidor de envio</param> /// <param name="userName">Nombre de usuario</param> /// <param name="userPass">Password de la cuenta</param> /// <param name="numDestinatarios">Numero de destinatarios en cada envio. Defecto 50</param> /// <param name="IsBodyHtml">Indica si el texto tiene formato HTML</param> /// <param name="filename">Nombre del archivo a enviar</param> /// <param name="folder">Carpeta para almacenar el archivo. Adminte ; para separar nombres de archivo</param> /// <param name="temp">Indicar si el archiv es temporal o debe ser borrado</param> /// <param name="enableSsl">Habilitar la seguridad del servidor</param> /// <param name="urlFiles">URI que antecede a la carpeta folder para descargar el link del archivo adjunto</param> /// <returns> /// Devuelve true si el envío ha sido satisfactorio /// </returns> public bool EnviarMail(string eMail, string Asunto, string cuerpoTexto, string empresaRemitente, string mailRemitente, string hostSMTP, string userName, string userPass, string urlFiles, int numDestinatarios = 10, bool IsBodyHtml = false, string filename = "", string folder = "mails", bool temp = false, bool enableSsl = false) { bool bResutado = true; // preparar el correo en fotmato HTML if (eMail != "") { // ENVÍO DEL FORMULARIO DE CONTACTO // variables para la gestión del correo MailMessage correo = new MailMessage(); SmtpClient smtp = new SmtpClient(hostSMTP); // identificación de usuario NetworkCredential userCredentials = new NetworkCredential(userName, userPass); smtp.EnableSsl = enableSsl; smtp.Credentials = userCredentials; // agregar remitente MailAddress emailRemitente; try { emailRemitente = new MailAddress(mailRemitente, empresaRemitente); } catch { emailRemitente = new MailAddress("*****@*****.**", "DrUalcman API"); } correo.From = emailRemitente; correo.ReplyToList.Add(emailRemitente); // agregar el asunto correo.Subject = Asunto; // propiedades del mail correo.Priority = MailPriority.Normal; correo.IsBodyHtml = IsBodyHtml; ficheros f = new ficheros(); string fileHTML = string.Empty; //guardar una copia del correo para poner un enlace a la copia HTML del mismo try { fileHTML = f.guardaDato("mail.html", cuerpoTexto, folder, true); } catch { fileHTML = string.Empty; } cuerpoTexto += Environment.NewLine; //comprobar que no tiene un fichero adjunto if (filename != "") { //adjuntar el archivo fisicamente archivos a = new archivos(); folder = a.checkCarpeta(folder); //comprobar que no es una lista de archivo string fichero = string.Empty; string folder2 = "~/" + folder; if (filename.IndexOf(";") > 0) { //es una lista de archivos string[] files = filename.Split(';'); foreach (string file in files) { if (f.existeFichero(file.Trim(), folder)) { // solo es un archivo fichero = folder2 + file.Trim(); correo.Attachments.Add(new Attachment(a.GetStreamFile(fichero), System.IO.Path.GetFileName(fichero))); // // se elimina el archivo porque no estara bloqueado y era un archivo temporal // if (temp == true) { f.borrarArchivo(file.Trim(), folder); } } else { cuerpoTexto += basicHTML.a(urlFiles + folder.Replace("~", ""), file.Trim()) + Environment.NewLine; } } } else { if (f.existeFichero(filename.Trim(), folder)) { // solo es un archivo fichero = folder2 + filename.Trim(); correo.Attachments.Add(new Attachment(a.GetStreamFile(fichero), System.IO.Path.GetFileName(fichero))); // // se elimina el archivo porque no estara bloqueado y era un archivo temporal // if (temp == true) { f.borrarArchivo(filename.Trim(), folder); } } else { cuerpoTexto += basicHTML.a(urlFiles + folder.Replace("~", ""), filename.Trim()); } } a = null; } cuerpoTexto += Environment.NewLine; if (!string.IsNullOrEmpty(fileHTML)) { if (IsBodyHtml == true) { //insert link cuerpoTexto += basicHTML.a(knowServerURL() + "/mails/" + fileHTML, "If you cannot read the message well click here to read it online", "_blank"); } else { //inser texto where is it the file cuerpoTexto += " If you cannot read the message well click here " + knowServerURL() + "/mails/" + fileHTML + " to read it online (copy the link in your Internet browser)"; } } // cuerpo del mail correo.Body = cuerpoTexto; //hacer el envio a todas las direcciones encontradas if (eMail.IndexOf(";") > 0) { // extraer las direcciones string[] Direcciones = eMail.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); bool seguimiento; if (eMail.IndexOf("invite.trustpilot.com") < 0) { seguimiento = false; } else { seguimiento = true; } byte s = 1; bool enviado = false; // recorrer las direcciones para realizar el envio foreach (string item in Direcciones) { if (item != "") { //comprobar que tiene @ if (item.IndexOf("@") > 0) { MailAddress nuevoCorreo = new MailAddress(item); if (seguimiento) { if (s < 2) { correo.To.Add(nuevoCorreo); } else { correo.Bcc.Add(nuevoCorreo); } } else { correo.Bcc.Add(nuevoCorreo); } } if (s >= numDestinatarios) { try { smtp.Send(correo); enviado = true; } catch (Exception ex) { string err = ex.ToString(); enviado = false; bResutado = false; } finally { correo.To.Clear(); correo.Bcc.Clear(); } s = 0; // reseteamos para volver a enviar a otro grupo de correos } else { enviado = false; } } s++; } // enviar al resto de destinatarios if (enviado == false) { try { smtp.Send(correo); } catch (Exception ex) { string err = ex.ToString(); //string datos = hostSMTP + ";" + userName + ";" + userPass + enableSsl.ToString(); //DrSeguridad.reportError(ex,err,datos); bResutado = false; } } } else { // solo hay un destinatario try { //MailAddress nuevoCorreo = new MailAddress(eMail); //correo.To.Add(nuevoCorreo); correo.To.Add(eMail); smtp.Send(correo); } catch (Exception ex) { string err = ex.ToString(); //string datos = hostSMTP + ";" + userName + ";" + userPass + enableSsl.ToString(); //DrSeguridad.reportError(ex, err, datos); bResutado = false; } } //string datos1 = hostSMTP + ";" + userName + ";" + userPass + enableSsl.ToString(); //DrSeguridad.reportError(new Exception("nada"), "error mio",datos1); correo.Dispose(); smtp.Dispose(); } return(bResutado); }