Agregar archivos de proyecto.
This commit is contained in:
119
Funciones.cs
Normal file
119
Funciones.cs
Normal file
@@ -0,0 +1,119 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Mail;
|
||||
using System.Net.Mime;
|
||||
using tsCorreos;
|
||||
using TsCorreos;
|
||||
|
||||
namespace TsCorreos
|
||||
{
|
||||
|
||||
public class Funciones
|
||||
{
|
||||
|
||||
public static async void EnviaCorreo(string ServidorSMTP, string Remitente, string Destinatario, string Asunto, string Cuerpo, List<Attachment> AttachMents = null, List<AlternateView> AlternateViews = null, string CC = "", string BCC = "", string CuentaCorreo = "", string ContraseñaCorreo = "", int Puerto = 25, bool UsarSSL = false, bool CuerpoenHTML = false, string ResponderA = "", bool CredencialesConDominio = false, SecurityProtocolType ProtocoloSeguridad = SecurityProtocolType.Tls, string NombreRemitente = "")
|
||||
{
|
||||
try
|
||||
{
|
||||
if (ServidorSMTP == "smtp.gmail.com")
|
||||
{
|
||||
var tkgm = await TokenGmail.ObtieneTokenAsync(Remitente);
|
||||
await GmailOAuthSender.EnviarCorreoAsync(tkgm.Config, tkgm.Token, Destinatario, Asunto, Cuerpo, CuerpoenHTML, CC, BCC, ResponderA, AttachMents);
|
||||
}
|
||||
else
|
||||
{
|
||||
FuncionesInternas.EnviaCorreo(ServidorSMTP, Remitente, Destinatario, Asunto, Cuerpo, AttachMents, AlternateViews, CC, BCC, CuentaCorreo, ContraseñaCorreo, Puerto, UsarSSL, CuerpoenHTML, ResponderA, CredencialesConDominio, ProtocoloSeguridad, NombreRemitente);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new Exception(ex.Message, ex);
|
||||
}
|
||||
}
|
||||
public static async void EnviaCorreoAL(string ServidorSMTP, string Remitente, string Destinatario, string Asunto, string Cuerpo, ArrayList FicherosAdjuntos = null, string CC = "", string BCC = "", string CuentaCorreo = "", string ContraseñaCorreo = "", int Puerto = 25, bool UsarSSL = false, string NombreRemitente = "")
|
||||
{
|
||||
try
|
||||
{
|
||||
if (ServidorSMTP == "smtp.gmail.com")
|
||||
{
|
||||
var tkgm = await TokenGmail.ObtieneTokenAsync(Remitente);
|
||||
await GmailOAuthSender.EnviarCorreoALAsync(tkgm.Config, tkgm.Token, Destinatario, Asunto, Cuerpo, false, CC, BCC, adjuntos: FicherosAdjuntos);
|
||||
}
|
||||
else
|
||||
{
|
||||
FuncionesInternas.EnviaCorreoAL(ServidorSMTP, Remitente, Destinatario, Asunto, Cuerpo, FicherosAdjuntos, CC, BCC, CuentaCorreo, ContraseñaCorreo, Puerto, UsarSSL, NombreRemitente);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new Exception(ex.Message, ex);
|
||||
}
|
||||
|
||||
}
|
||||
public static void EnviaCorreoCompruebaHTML(string ServidorSMTP, string Remitente, string Destinatario, string Asunto, string Cuerpo, MemoryStream[] FicherosAdjuntos, string[] NombreFicherosAdjuntos, string CC = "", string BCC = "", string CuentaCorreo = "", string ContraseñaCorreo = "", int Puerto = 25, bool UsarSSL = false, bool CuerpoenHTML = false, string ResponderA = "", string NombreRemitente = "")
|
||||
{
|
||||
try
|
||||
{
|
||||
if (FicherosAdjuntos.Count() == 1 && NombreFicherosAdjuntos[0].EndsWith(".html.zip"))
|
||||
{
|
||||
string sDirectorioTMP = tsCorreos.Utilidades.ObtieneDirectorioAleatorio();
|
||||
tsZip.Zip.ExtraeTodoDeZip(FicherosAdjuntos[0], sDirectorioTMP);
|
||||
// tsZIP.zip.ExtraeTodoDeZip("f:\temp\csc.html.zip", sDirectorioTMP)
|
||||
string sFichCuerpo = Directory.GetFiles(sDirectorioTMP, "*.html")[0];
|
||||
string sCuerpo = System.Text.Encoding.UTF8.GetString(File.ReadAllBytes(sFichCuerpo));
|
||||
var avHtml = AlternateView.CreateAlternateViewFromString(sCuerpo, null, MediaTypeNames.Text.Html);
|
||||
string diradj = Directory.GetDirectories(sDirectorioTMP)[0];
|
||||
string[] ficadj = Directory.GetFiles(diradj);
|
||||
foreach (var f in ficadj)
|
||||
{
|
||||
var ms = new MemoryStream(File.ReadAllBytes(f));
|
||||
var inline = new LinkedResource(ms, "image/" + Path.GetExtension(f).Trim('.'));
|
||||
inline.ContentId = Path.GetFileNameWithoutExtension(f);
|
||||
avHtml.LinkedResources.Add(inline);
|
||||
}
|
||||
var avs = new List<AlternateView>();
|
||||
avs.Add(avHtml);
|
||||
FuncionesInternas.EnviaCorreoHtml(ServidorSMTP, Remitente, Destinatario, Asunto, Cuerpo, null, avs, CC, BCC, CuentaCorreo, ContraseñaCorreo, Puerto, UsarSSL, true, ResponderA, NombreRemitente);
|
||||
Directory.Delete(sDirectorioTMP, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
EnviaCorreoMS(ServidorSMTP, Remitente, Destinatario, Asunto, Cuerpo, FicherosAdjuntos, NombreFicherosAdjuntos, CC, BCC, CuentaCorreo, ContraseñaCorreo, Puerto, UsarSSL, CuerpoenHTML, ResponderA, NombreRemitente);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new Exception(ex.Message, ex);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static async void EnviaCorreoMS(string ServidorSMTP, string Remitente, string Destinatario, string Asunto, string Cuerpo, MemoryStream[] FicherosAdjuntos, string[] NombreFicherosAdjuntos, string CC = "", string BCC = "", string CuentaCorreo = "", string ContraseñaCorreo = "", int Puerto = 25, bool UsarSSL = false, bool CuerpoenHTML = false, string ResponderA = "", string NombreRemitente = "")
|
||||
{
|
||||
|
||||
|
||||
try
|
||||
{
|
||||
if (ServidorSMTP == "smtp.gmail.com")
|
||||
{
|
||||
var tkgm = await TokenGmail.ObtieneTokenAsync(Remitente);
|
||||
await GmailOAuthSender.EnviarCorreoMSAsync(tkgm.Config, tkgm.Token, Destinatario, Asunto, Cuerpo, false, CC, BCC, FicherosAdjuntos: FicherosAdjuntos);
|
||||
}
|
||||
else
|
||||
{
|
||||
FuncionesInternas.EnviaCorreoMS(ServidorSMTP, Remitente, Destinatario, Asunto, Cuerpo, FicherosAdjuntos, NombreFicherosAdjuntos, CC, BCC, CuentaCorreo, ContraseñaCorreo, Puerto, UsarSSL, CuerpoenHTML,ResponderA, NombreRemitente);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new Exception(ex.Message, ex);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
821
FuncionesInternas.cs
Normal file
821
FuncionesInternas.cs
Normal file
@@ -0,0 +1,821 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Net.Mail;
|
||||
using System.Net.Mime;
|
||||
using System.Net.Security;
|
||||
using System.Security.Cryptography.X509Certificates;
|
||||
|
||||
namespace TsCorreos
|
||||
{
|
||||
|
||||
internal class FuncionesInternas
|
||||
{
|
||||
internal static void EnviaCorreoCompruebaHTML(string ServidorSMTP, string Remitente, string Destinatario, string Asunto, string Cuerpo, MemoryStream[] FicherosAdjuntos, string[] NombreFicherosAdjuntos, string CC = "", string BCC = "", string CuentaCorreo = "", string ContraseñaCorreo = "", int Puerto = 25, bool UsarSSL = false, bool CuerpoenHTML = false, string ResponderA = "")
|
||||
{
|
||||
if (FicherosAdjuntos.Count() == 1 && NombreFicherosAdjuntos[0].EndsWith(".html.zip"))
|
||||
{
|
||||
string sDirectorioTMP = tsCorreos.Utilidades.ObtieneDirectorioAleatorio();
|
||||
tsZip.Zip.ExtraeTodoDeZip(FicherosAdjuntos[0], sDirectorioTMP);
|
||||
// tsZIP.zip.ExtraeTodoDeZip("f:\temp\csc.html.zip", sDirectorioTMP)
|
||||
string sFichCuerpo = Directory.GetFiles(sDirectorioTMP, "*.html")[0];
|
||||
string sCuerpo = System.Text.Encoding.UTF8.GetString(File.ReadAllBytes(sFichCuerpo));
|
||||
var avHtml = AlternateView.CreateAlternateViewFromString(sCuerpo, null, MediaTypeNames.Text.Html);
|
||||
string diradj = Directory.GetDirectories(sDirectorioTMP)[0];
|
||||
string[] ficadj = Directory.GetFiles(diradj);
|
||||
foreach (var f in ficadj)
|
||||
{
|
||||
var ms = new MemoryStream(File.ReadAllBytes(f));
|
||||
var inline = new LinkedResource(ms, "image/" + Path.GetExtension(f).Trim('.'));
|
||||
inline.ContentId = Path.GetFileNameWithoutExtension(f);
|
||||
avHtml.LinkedResources.Add(inline);
|
||||
}
|
||||
var avs = new List<AlternateView>();
|
||||
avs.Add(avHtml);
|
||||
EnviaCorreoHtml(ServidorSMTP, Remitente, Destinatario, Asunto, Cuerpo, null, avs, CC, BCC, CuentaCorreo, ContraseñaCorreo, Puerto, UsarSSL, true, ResponderA);
|
||||
Directory.Delete(sDirectorioTMP, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
EnviaCorreoMS(ServidorSMTP, Remitente, Destinatario, Asunto, Cuerpo, FicherosAdjuntos, NombreFicherosAdjuntos, CC, BCC, CuentaCorreo, ContraseñaCorreo, Puerto, UsarSSL, CuerpoenHTML, ResponderA);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
internal static void EnviaCorreoHtml(string ServidorSMTP, string Remitente, string Destinatario, string Asunto, string Cuerpo, List<Attachment> AttachMents, List<AlternateView> AlternateViews, string CC = "", string BCC = "", string CuentaCorreo = "", string ContraseñaCorreo = "", int Puerto = 25, bool UsarSSL = false, bool CuerpoenHTML = false, string ResponderA = "",string NombreRemitente="")
|
||||
{
|
||||
try
|
||||
{
|
||||
if (NombreRemitente==null) NombreRemitente=Remitente;
|
||||
SmtpClient SmtpMail;
|
||||
MailMessage myMessage;
|
||||
|
||||
|
||||
// Si es alguna de las máquinas de desarrollo de danmun, el correo se envía solamente a danmun. Son pruebas.
|
||||
if (Environment.MachineName == "WIN81PDDANMUN" || (Environment.MachineName.ToUpper() ?? "") == ("INTI81".ToUpper() ?? "") || (Environment.MachineName.ToUpper() ?? "") == ("INTI10".ToUpper() ?? ""))
|
||||
{
|
||||
Destinatario = "danmun@tecnosis.eu";
|
||||
}
|
||||
|
||||
Asunto = Asunto.Replace(Environment.NewLine, " ");
|
||||
// myMessage = New MailMessage(Remitente, Destinatario, Asunto, Cuerpo)
|
||||
myMessage = new MailMessage();
|
||||
myMessage.Body = Cuerpo;
|
||||
myMessage.Subject = Asunto;
|
||||
string[] destinatarios = Destinatario.Split(';');
|
||||
foreach (var currentDestinatario in destinatarios)
|
||||
{
|
||||
Destinatario = currentDestinatario;
|
||||
myMessage.To.Add(new MailAddress(Destinatario.Trim(), Destinatario.Trim()));
|
||||
}
|
||||
myMessage.BodyEncoding = System.Text.Encoding.Default;
|
||||
if (ResponderA is null || string.IsNullOrWhiteSpace(ResponderA))
|
||||
{
|
||||
myMessage.ReplyToList.Add(new MailAddress(Remitente, NombreRemitente));
|
||||
}
|
||||
else
|
||||
{
|
||||
myMessage.ReplyToList.Add(new MailAddress(ResponderA, ResponderA));
|
||||
myMessage.ReplyToList.Add(new MailAddress(Remitente, NombreRemitente));
|
||||
}
|
||||
myMessage.Sender = new MailAddress(Remitente, NombreRemitente);
|
||||
myMessage.From = new MailAddress(Remitente, NombreRemitente);
|
||||
myMessage.IsBodyHtml = CuerpoenHTML;
|
||||
if (!string.IsNullOrEmpty(CC))
|
||||
{
|
||||
foreach (var scc in CC.Split(';'))
|
||||
myMessage.CC.Add(scc);
|
||||
}
|
||||
if (!string.IsNullOrEmpty(BCC))
|
||||
{
|
||||
foreach (var sbcc in BCC.Split(';'))
|
||||
myMessage.Bcc.Add(sbcc);
|
||||
}
|
||||
if (AttachMents != null)
|
||||
{
|
||||
foreach (var att in AttachMents)
|
||||
myMessage.Attachments.Add(att);
|
||||
}
|
||||
if (AlternateViews != null)
|
||||
{
|
||||
foreach (var av in AlternateViews)
|
||||
myMessage.AlternateViews.Add(av);
|
||||
}
|
||||
SmtpMail = new SmtpClient();
|
||||
|
||||
if (!string.IsNullOrEmpty(ServidorSMTP))
|
||||
SmtpMail.Host = ServidorSMTP;
|
||||
SmtpMail.Port = Puerto;
|
||||
if (!string.IsNullOrEmpty(CuentaCorreo))
|
||||
{
|
||||
SmtpMail.Credentials = new NetworkCredential(CuentaCorreo, ContraseñaCorreo);
|
||||
}
|
||||
SmtpMail.EnableSsl = UsarSSL;
|
||||
|
||||
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
|
||||
ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;
|
||||
SmtpMail.Send(myMessage);
|
||||
}
|
||||
|
||||
|
||||
catch (Exception myexp)
|
||||
{
|
||||
throw new Exception(myexp.Message, myexp);
|
||||
}
|
||||
}
|
||||
|
||||
internal static void EnviaCorreo(string ServidorSMTP, string Remitente, string Destinatario, string Asunto, string Cuerpo, List<Attachment> AttachMents, List<AlternateView> AlternateViews, string CC = "", string BCC = "", string CuentaCorreo = "", string ContraseñaCorreo = "", int Puerto = 25, bool UsarSSL = false, bool CuerpoenHTML = false, string ResponderA = "", bool CredencialesConDominio = false, SecurityProtocolType ProtocoloSeguridad = SecurityProtocolType.Tls, string NombreRemitente ="")
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
SmtpClient SmtpMail;
|
||||
MailMessage myMessage;
|
||||
|
||||
if (string.IsNullOrEmpty(NombreRemitente)) NombreRemitente=Remitente;
|
||||
if (string.IsNullOrEmpty(Destinatario) & !string.IsNullOrEmpty(CC))
|
||||
{
|
||||
Destinatario = CC;
|
||||
CC = "";
|
||||
}
|
||||
Asunto = Asunto.Replace(Environment.NewLine, " ");
|
||||
// myMessage = New MailMessage(Remitente, Destinatario, Asunto, Cuerpo)
|
||||
myMessage = new MailMessage();
|
||||
myMessage.Subject = Asunto;
|
||||
myMessage.Body = Cuerpo;
|
||||
myMessage.From = new MailAddress(Remitente);
|
||||
string[] sDestinatarios = null;
|
||||
sDestinatarios = Destinatario.Split(';');
|
||||
foreach (var dest in sDestinatarios)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(dest.Trim()))
|
||||
{
|
||||
myMessage.To.Add(dest.Trim());
|
||||
}
|
||||
}
|
||||
|
||||
myMessage.BodyEncoding = System.Text.Encoding.Default;
|
||||
if (ResponderA is null || string.IsNullOrWhiteSpace(ResponderA))
|
||||
{
|
||||
myMessage.ReplyToList.Add(new MailAddress(Remitente, NombreRemitente));
|
||||
}
|
||||
else
|
||||
{
|
||||
myMessage.ReplyToList.Add(new MailAddress(ResponderA, ResponderA));
|
||||
myMessage.ReplyToList.Add(new MailAddress(Remitente, NombreRemitente));
|
||||
}
|
||||
myMessage.Sender = new MailAddress(Remitente, NombreRemitente);
|
||||
myMessage.From = new MailAddress(Remitente, NombreRemitente);
|
||||
myMessage.IsBodyHtml = CuerpoenHTML;
|
||||
|
||||
if (!string.IsNullOrEmpty(CC))
|
||||
{
|
||||
string[] scc = CC.Split(';');
|
||||
foreach (var c in scc)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(c))
|
||||
myMessage.CC.Add(c);
|
||||
}
|
||||
}
|
||||
if (!string.IsNullOrEmpty(BCC))
|
||||
{
|
||||
string[] sbcc = BCC.Split(';');
|
||||
foreach (var b in sbcc)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(b))
|
||||
myMessage.Bcc.Add(b);
|
||||
}
|
||||
}
|
||||
if (AttachMents != null)
|
||||
{
|
||||
foreach (var att in AttachMents)
|
||||
myMessage.Attachments.Add(att);
|
||||
}
|
||||
if (AlternateViews != null)
|
||||
{
|
||||
foreach (var av in AlternateViews)
|
||||
myMessage.AlternateViews.Add(av);
|
||||
}
|
||||
SmtpMail = new SmtpClient();
|
||||
|
||||
if (!string.IsNullOrEmpty(ServidorSMTP))
|
||||
SmtpMail.Host = ServidorSMTP;
|
||||
SmtpMail.Port = Puerto;
|
||||
if (!string.IsNullOrEmpty(CuentaCorreo))
|
||||
{
|
||||
if (CredencialesConDominio)
|
||||
{
|
||||
SmtpMail.Credentials = new NetworkCredential(CuentaCorreo, ContraseñaCorreo, CuentaCorreo.Split('@')[1]);
|
||||
}
|
||||
else
|
||||
{
|
||||
SmtpMail.Credentials = new NetworkCredential(CuentaCorreo, ContraseñaCorreo);
|
||||
}
|
||||
}
|
||||
SmtpMail.EnableSsl = UsarSSL;
|
||||
// SmtpMail.TargetName = "STARTTLS/smtp.office365.com"
|
||||
// ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls OrElse SecurityProtocolType.Tls11 OrElse SecurityProtocolType.Tls12 OrElse SecurityProtocolType.Tls13
|
||||
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
|
||||
// ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;
|
||||
ServicePointManager.ServerCertificateValidationCallback =
|
||||
(sender, certificate, chain, sslPolicyErrors) => true;
|
||||
SmtpMail.Send(myMessage);
|
||||
}
|
||||
|
||||
|
||||
catch (Exception myexp)
|
||||
{
|
||||
throw new Exception(myexp.Message, myexp);
|
||||
}
|
||||
}
|
||||
|
||||
internal static void EnviaCorreoMS(string ServidorSMTP, string Remitente, string Destinatario, string Asunto, string Cuerpo, MemoryStream[] FicherosAdjuntos, string[] NombreFicherosAdjuntos, string CC = "", string BCC = "", string CuentaCorreo = "", string ContraseñaCorreo = "", int Puerto = 25, bool UsarSSL = false, bool CuerpoenHTML = false, string ResponderA = "", string NombreRemitente ="")
|
||||
{
|
||||
try
|
||||
{
|
||||
if (NombreRemitente == "") NombreRemitente = Remitente;
|
||||
Attachment myAttch;
|
||||
SmtpClient SmtpMail;
|
||||
MailMessage myMessage;
|
||||
int i, iCnt;
|
||||
|
||||
// Si es alguna de las máquinas de desarrollo de danmun, el correo se envía solamente a danmun. Son pruebas.
|
||||
if (Environment.MachineName == "WIN81PDDANMUN" || (Environment.MachineName.ToUpper() ?? "") == ("INTI81".ToUpper() ?? "") || (Environment.MachineName.ToUpper() ?? "") == ("INTI10".ToUpper() ?? ""))
|
||||
{
|
||||
Destinatario = "danmun@tecnosis.eu";
|
||||
}
|
||||
|
||||
Asunto = Asunto.Replace(Environment.NewLine, " ");
|
||||
myMessage = new MailMessage();
|
||||
|
||||
|
||||
myMessage = new MailMessage();
|
||||
myMessage.Body = Cuerpo;
|
||||
myMessage.Subject = Asunto;
|
||||
string[] destinatarios = Destinatario.Split(';');
|
||||
foreach (var currentDestinatario in destinatarios)
|
||||
{
|
||||
Destinatario = currentDestinatario;
|
||||
myMessage.To.Add(new MailAddress(Destinatario.Trim(), Destinatario.Trim()));
|
||||
}
|
||||
|
||||
|
||||
|
||||
myMessage.BodyEncoding = System.Text.Encoding.Default;
|
||||
if (ResponderA is null || string.IsNullOrWhiteSpace(ResponderA))
|
||||
{
|
||||
myMessage.ReplyToList.Add(new MailAddress(Remitente, NombreRemitente));
|
||||
}
|
||||
else
|
||||
{
|
||||
myMessage.ReplyToList.Add(new MailAddress(ResponderA, ResponderA));
|
||||
myMessage.ReplyToList.Add(new MailAddress(Remitente, NombreRemitente));
|
||||
}
|
||||
myMessage.Sender = new MailAddress(Remitente, NombreRemitente);
|
||||
myMessage.From = new MailAddress(Remitente, NombreRemitente);
|
||||
myMessage.IsBodyHtml = CuerpoenHTML;
|
||||
|
||||
if (!string.IsNullOrEmpty(CC))
|
||||
{
|
||||
foreach (var scc in CC.Split(';'))
|
||||
myMessage.CC.Add(scc);
|
||||
}
|
||||
if (!string.IsNullOrEmpty(BCC))
|
||||
{
|
||||
foreach (var sbcc in BCC.Split(';'))
|
||||
myMessage.Bcc.Add(sbcc);
|
||||
}
|
||||
if (FicherosAdjuntos != null)
|
||||
{
|
||||
iCnt = FicherosAdjuntos.Count() - 1;
|
||||
var loopTo = iCnt;
|
||||
for (i = 0; i <= loopTo; i++)
|
||||
{
|
||||
myAttch = new Attachment(FicherosAdjuntos[i], NombreFicherosAdjuntos[i]);
|
||||
myMessage.Attachments.Add(myAttch);
|
||||
}
|
||||
}
|
||||
|
||||
SmtpMail = new SmtpClient();
|
||||
|
||||
if (!string.IsNullOrEmpty(ServidorSMTP))
|
||||
SmtpMail.Host = ServidorSMTP;
|
||||
SmtpMail.Port = Puerto;
|
||||
if (!string.IsNullOrEmpty(CuentaCorreo))
|
||||
{
|
||||
SmtpMail.UseDefaultCredentials = false;
|
||||
SmtpMail.Credentials = new NetworkCredential(CuentaCorreo, ContraseñaCorreo);
|
||||
}
|
||||
SmtpMail.EnableSsl = UsarSSL;
|
||||
|
||||
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
|
||||
// ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;
|
||||
ServicePointManager.ServerCertificateValidationCallback =
|
||||
(sender, certificate, chain, sslPolicyErrors) => true;
|
||||
SmtpMail.Send(myMessage);
|
||||
}
|
||||
|
||||
|
||||
catch (Exception myexp)
|
||||
{
|
||||
throw new Exception(myexp.Message, myexp);
|
||||
}
|
||||
}
|
||||
internal static void EnviaCorreo(string ServidorSMTP, string Remitente, string Destinatario, string Asunto, string Cuerpo, List<string> FicherosAdjuntos, string CC = "", string BCC = "", string CuentaCorreo = "", string ContraseñaCorreo = "", int Puerto = 25, bool UsarSSL = false, bool CuerpoenHTML = false, string ResponderA = "")
|
||||
{
|
||||
try
|
||||
{
|
||||
Attachment myAttch;
|
||||
SmtpClient SmtpMail;
|
||||
MailMessage myMessage;
|
||||
int i, iCnt;
|
||||
|
||||
// Si es alguna de kas máquinas de desarrollo de danmun, el correo se envía solamente a danmun. Son pruebas.
|
||||
// If Environment.MachineName = "WIN81PDDANMUN" OrElse Environment.MachineName.ToUpper = "INTI81".ToUpper OrElse Environment.MachineName.ToUpper = "INTI10".ToUpper Then
|
||||
// Destinatario = "danmun@tecnosis.eu"
|
||||
// End If
|
||||
|
||||
Asunto = Asunto.Replace(Environment.NewLine, " ");
|
||||
myMessage = new MailMessage(Remitente, Destinatario, Asunto, Cuerpo);
|
||||
myMessage.BodyEncoding = System.Text.Encoding.Default;
|
||||
if (ResponderA is null || string.IsNullOrWhiteSpace(ResponderA))
|
||||
{
|
||||
myMessage.ReplyToList.Add(new MailAddress(Remitente, Remitente));
|
||||
}
|
||||
else
|
||||
{
|
||||
myMessage.ReplyToList.Add(new MailAddress(ResponderA, ResponderA));
|
||||
myMessage.ReplyToList.Add(new MailAddress(Remitente, Remitente));
|
||||
}
|
||||
myMessage.Sender = new MailAddress(Remitente, Remitente);
|
||||
myMessage.From = new MailAddress(Remitente, Remitente);
|
||||
|
||||
|
||||
if (!string.IsNullOrEmpty(CC))
|
||||
{
|
||||
myMessage.CC.Add(CC);
|
||||
}
|
||||
if (!string.IsNullOrEmpty(BCC))
|
||||
{
|
||||
myMessage.Bcc.Add(BCC);
|
||||
}
|
||||
if (FicherosAdjuntos != null)
|
||||
{
|
||||
iCnt = FicherosAdjuntos.Count - 1;
|
||||
var loopTo = iCnt;
|
||||
for (i = 0; i <= loopTo; i++)
|
||||
{
|
||||
if (File.Exists(FicherosAdjuntos[i]))
|
||||
{
|
||||
myAttch = new Attachment(FicherosAdjuntos[i]);
|
||||
myMessage.Attachments.Add(myAttch);
|
||||
// myAttch.Dispose()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SmtpMail = new SmtpClient();
|
||||
|
||||
if (!string.IsNullOrEmpty(ServidorSMTP))
|
||||
SmtpMail.Host = ServidorSMTP;
|
||||
SmtpMail.Port = Puerto;
|
||||
if (!string.IsNullOrEmpty(CuentaCorreo))
|
||||
{
|
||||
SmtpMail.Credentials = new NetworkCredential(CuentaCorreo, ContraseñaCorreo);
|
||||
}
|
||||
SmtpMail.EnableSsl = UsarSSL;
|
||||
|
||||
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
|
||||
//ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;
|
||||
ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;
|
||||
SmtpMail.Send(myMessage);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new Exception(e.Message, e);
|
||||
}
|
||||
}
|
||||
|
||||
internal static void EnviaCorreo(string servidorSMTP, string remitente, List<string> destinatarios, string asunto, string cuerpo, List<string> ficherosAdjuntos, string cc = "", string bcc = "", string cuentaCorreo = "", string contraseñaCorreo = "", int puerto = 25, bool usarSSL = false, bool cuerpoEsHTML = false, string responderA = "")
|
||||
{
|
||||
try
|
||||
{
|
||||
Attachment myAttch;
|
||||
SmtpClient SmtpMail;
|
||||
MailMessage myMessage;
|
||||
int i, iCnt;
|
||||
|
||||
// Si es alguna de kas máquinas de desarrollo de danmun, el correo se envía solamente a danmun. Son pruebas.
|
||||
// If Environment.MachineName = "WIN81PDDANMUN" OrElse Environment.MachineName.ToUpper = "INTI81".ToUpper OrElse Environment.MachineName.ToUpper = "INTI10".ToUpper Then
|
||||
// Destinatario = "danmun@tecnosis.eu"
|
||||
// End If
|
||||
|
||||
asunto = asunto.Replace(Environment.NewLine, " ");
|
||||
myMessage = new MailMessage();
|
||||
myMessage.Body = cuerpo;
|
||||
myMessage.Subject = asunto;
|
||||
foreach (var destinatario in destinatarios)
|
||||
myMessage.To.Add(new MailAddress(destinatario, destinatario));
|
||||
|
||||
myMessage.BodyEncoding = System.Text.Encoding.Default;
|
||||
if (responderA is null || string.IsNullOrWhiteSpace(responderA))
|
||||
{
|
||||
myMessage.ReplyToList.Add(new MailAddress(remitente, remitente));
|
||||
}
|
||||
else
|
||||
{
|
||||
myMessage.ReplyToList.Add(new MailAddress(responderA, responderA));
|
||||
myMessage.ReplyToList.Add(new MailAddress(remitente, remitente));
|
||||
}
|
||||
myMessage.Sender = new MailAddress(remitente, remitente);
|
||||
myMessage.From = new MailAddress(remitente, remitente);
|
||||
|
||||
|
||||
if (!string.IsNullOrEmpty(cc))
|
||||
{
|
||||
foreach (var scc in cc.Split(';'))
|
||||
myMessage.CC.Add(scc);
|
||||
}
|
||||
if (!string.IsNullOrEmpty(bcc))
|
||||
{
|
||||
foreach (var sbcc in bcc.Split(';'))
|
||||
myMessage.Bcc.Add(sbcc);
|
||||
}
|
||||
if (ficherosAdjuntos != null)
|
||||
{
|
||||
iCnt = ficherosAdjuntos.Count - 1;
|
||||
var loopTo = iCnt;
|
||||
for (i = 0; i <= loopTo; i++)
|
||||
{
|
||||
if (File.Exists(ficherosAdjuntos[i]))
|
||||
{
|
||||
myAttch = new Attachment(ficherosAdjuntos[i]);
|
||||
myMessage.Attachments.Add(myAttch);
|
||||
// myAttch.Dispose()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SmtpMail = new SmtpClient();
|
||||
|
||||
if (!string.IsNullOrEmpty(servidorSMTP))
|
||||
SmtpMail.Host = servidorSMTP;
|
||||
SmtpMail.Port = puerto;
|
||||
if (!string.IsNullOrEmpty(cuentaCorreo))
|
||||
{
|
||||
SmtpMail.Credentials = new NetworkCredential(cuentaCorreo, contraseñaCorreo);
|
||||
}
|
||||
SmtpMail.EnableSsl = usarSSL;
|
||||
|
||||
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
|
||||
ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;
|
||||
SmtpMail.Send(myMessage);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new Exception(e.Message, e);
|
||||
}
|
||||
}
|
||||
|
||||
internal static void EnviaCorreoAL(string ServidorSMTP, string Remitente, string Destinatario, string Asunto, string Cuerpo, ArrayList FicherosAdjuntos = null, string CC = "", string BCC = "", string CuentaCorreo = "", string ContraseñaCorreo = "", int Puerto = 25, bool UsarSSL = false, string NombreRemitente="" )
|
||||
{
|
||||
try
|
||||
{
|
||||
if (NombreRemitente == "") NombreRemitente=Remitente;
|
||||
Attachment myAttch;
|
||||
SmtpClient SmtpMail;
|
||||
MailMessage myMessage;
|
||||
int i, iCnt;
|
||||
|
||||
// myMessage = New MailMessage(Remitente, Destinatario, Asunto, Cuerpo)
|
||||
myMessage = new MailMessage();
|
||||
myMessage.Body = Cuerpo;
|
||||
myMessage.Subject = Asunto;
|
||||
string[] destinatarios = Destinatario.Split(';');
|
||||
foreach (var currentDestinatario in destinatarios)
|
||||
{
|
||||
Destinatario = currentDestinatario;
|
||||
myMessage.To.Add(new MailAddress(Destinatario.Trim(), Destinatario.Trim()));
|
||||
}
|
||||
|
||||
|
||||
myMessage.BodyEncoding = System.Text.Encoding.Default;
|
||||
myMessage.ReplyTo = new MailAddress(Remitente, NombreRemitente);
|
||||
myMessage.Sender = new MailAddress(Remitente, NombreRemitente);
|
||||
myMessage.From = new MailAddress(Remitente, NombreRemitente);
|
||||
|
||||
|
||||
if (!string.IsNullOrEmpty(CC))
|
||||
{
|
||||
string[] scc = CC.Split(';');
|
||||
foreach (var c in scc)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(c))
|
||||
myMessage.CC.Add(c);
|
||||
}
|
||||
}
|
||||
if (!string.IsNullOrEmpty(BCC))
|
||||
{
|
||||
string[] sbcc = BCC.Split(';');
|
||||
foreach (var b in sbcc)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(b))
|
||||
myMessage.Bcc.Add(b);
|
||||
}
|
||||
}
|
||||
if (FicherosAdjuntos != null)
|
||||
{
|
||||
iCnt = FicherosAdjuntos.Count - 1;
|
||||
var loopTo = iCnt;
|
||||
for (i = 0; i <= loopTo; i++)
|
||||
{
|
||||
if (File.Exists(FicherosAdjuntos[i].ToString()))
|
||||
{
|
||||
myAttch = new Attachment(FicherosAdjuntos[i].ToString());
|
||||
myMessage.Attachments.Add(myAttch);
|
||||
// myAttch.Dispose()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SmtpMail = new SmtpClient();
|
||||
|
||||
if (!string.IsNullOrEmpty(ServidorSMTP))
|
||||
SmtpMail.Host = ServidorSMTP;
|
||||
SmtpMail.Port = Puerto;
|
||||
if (!string.IsNullOrEmpty(CuentaCorreo))
|
||||
{
|
||||
// SmtpMail.UseDefaultCredentials = True
|
||||
SmtpMail.Credentials = new NetworkCredential(CuentaCorreo, ContraseñaCorreo);
|
||||
}
|
||||
SmtpMail.EnableSsl = UsarSSL;
|
||||
|
||||
|
||||
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
|
||||
ServicePointManager.ServerCertificateValidationCallback =
|
||||
(sender, certificate, chain, sslPolicyErrors) => true;
|
||||
|
||||
|
||||
SmtpMail.Send(myMessage);
|
||||
}
|
||||
catch (Exception myexp)
|
||||
{
|
||||
throw myexp;
|
||||
}
|
||||
}
|
||||
|
||||
internal static void EnviaCorreoVariosAdjuntos(string ServidorSMTP, string Remitente, string Destinatario, string Asunto, string Cuerpo, List<FicheroAdjunto> FicherosAdjuntos = null, string CC = "", string BCC = "", string CuentaCorreo = "", string ContraseñaCorreo = "", int Puerto = 25, bool UsarSSL = false)
|
||||
{
|
||||
try
|
||||
{
|
||||
Attachment myAttch;
|
||||
SmtpClient SmtpMail;
|
||||
MailMessage myMessage;
|
||||
int i, iCnt;
|
||||
|
||||
myMessage = new MailMessage(Remitente, Destinatario, Asunto, Cuerpo);
|
||||
myMessage.BodyEncoding = System.Text.Encoding.Default;
|
||||
myMessage.ReplyTo = new MailAddress(Remitente, Remitente);
|
||||
myMessage.Sender = new MailAddress(Remitente, Remitente);
|
||||
myMessage.From = new MailAddress(Remitente, Remitente);
|
||||
|
||||
|
||||
if (!string.IsNullOrEmpty(CC))
|
||||
{
|
||||
myMessage.CC.Add(CC);
|
||||
}
|
||||
if (!string.IsNullOrEmpty(BCC))
|
||||
{
|
||||
myMessage.Bcc.Add(BCC);
|
||||
}
|
||||
ContentDisposition cd;
|
||||
if (FicherosAdjuntos !=null)
|
||||
{
|
||||
iCnt = FicherosAdjuntos.Count - 1;
|
||||
var loopTo = iCnt;
|
||||
for (i = 0; i <= loopTo; i++)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(FicherosAdjuntos[i].Ruta))
|
||||
{
|
||||
if (File.Exists(FicherosAdjuntos[i].Ruta))
|
||||
{
|
||||
myAttch = new Attachment(FicherosAdjuntos[i].Ruta);
|
||||
cd = myAttch.ContentDisposition;
|
||||
cd.FileName = FicherosAdjuntos[i].NombreFichero;
|
||||
myMessage.Attachments.Add(myAttch);
|
||||
}
|
||||
}
|
||||
else if (FicherosAdjuntos[i].Fichero != null && FicherosAdjuntos[i].Fichero.Length > 0)
|
||||
{
|
||||
myAttch = new Attachment(new MemoryStream(FicherosAdjuntos[i].Fichero), FicherosAdjuntos[i].NombreFichero);
|
||||
cd = myAttch.ContentDisposition;
|
||||
cd.FileName = FicherosAdjuntos[i].NombreFichero;
|
||||
myMessage.Attachments.Add(myAttch);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SmtpMail = new SmtpClient();
|
||||
|
||||
if (!string.IsNullOrEmpty(ServidorSMTP))
|
||||
SmtpMail.Host = ServidorSMTP;
|
||||
SmtpMail.Port = Puerto;
|
||||
if (!string.IsNullOrEmpty(CuentaCorreo))
|
||||
{
|
||||
SmtpMail.Credentials = new NetworkCredential(CuentaCorreo, ContraseñaCorreo);
|
||||
}
|
||||
SmtpMail.EnableSsl = UsarSSL;
|
||||
|
||||
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
|
||||
ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;
|
||||
|
||||
SmtpMail.Send(myMessage);
|
||||
}
|
||||
catch (Exception myexp)
|
||||
{
|
||||
throw myexp;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Envía un correo electrónico. Puede recibir adjuntos mediante un Dictionary(Of String, Stream).
|
||||
/// </summary>
|
||||
/// <param name="servidorSMTP"></param>
|
||||
/// <param name="remitente"></param>
|
||||
/// <param name="destinatario"></param>
|
||||
/// <param name="asunto"></param>
|
||||
/// <param name="cuerpo"></param>
|
||||
/// <param name="adjuntos">Un Dictionary(Of String, Stream). La clave es el nombre del archivo adjunto, el valor es el contenido del archivo adjunto en forma de Stream.</param>
|
||||
/// <param name="cc"></param>
|
||||
/// <param name="bcc"></param>
|
||||
/// <param name="cuentaCorreo"></param>
|
||||
/// <param name="contraseñaCorreo"></param>
|
||||
/// <param name="puerto"></param>
|
||||
/// <param name="usarSSL"></param>
|
||||
/// <remarks></remarks>
|
||||
internal static void EnviarCorreoElectrónico(string servidorSMTP, string remitente, string destinatario, string asunto, string cuerpo, Dictionary<string, Stream> adjuntos = null, string cc = "", string bcc = "", string cuentaCorreo = "", string contraseñaCorreo = "", int puerto = 25, bool usarSSL = false, string ResponderA = "")
|
||||
{
|
||||
try
|
||||
{
|
||||
SmtpClient clienteSMTP;
|
||||
MailMessage mensaje;
|
||||
|
||||
// Si es alguna de las máquinas de desarrollo de danmun, el correo se envía solamente a danmun. Son pruebas.
|
||||
// If Environment.MachineName = "WIN81PDDANMUN" OrElse Environment.MachineName.ToUpper = "INTI81".ToUpper OrElse Environment.MachineName.ToUpper = "INTI10".ToUpper Then
|
||||
// destinatario = "danmun@tecnosis.eu"
|
||||
// End If
|
||||
|
||||
asunto = asunto.Replace(Environment.NewLine, " ");
|
||||
mensaje = new MailMessage(remitente, destinatario, asunto, cuerpo);
|
||||
mensaje.BodyEncoding = System.Text.Encoding.Default;
|
||||
if (ResponderA is null || string.IsNullOrWhiteSpace(ResponderA))
|
||||
{
|
||||
mensaje.ReplyToList.Add(new MailAddress(remitente, remitente));
|
||||
}
|
||||
else
|
||||
{
|
||||
mensaje.ReplyToList.Add(new MailAddress(ResponderA, ResponderA));
|
||||
mensaje.ReplyToList.Add(new MailAddress(remitente, remitente));
|
||||
}
|
||||
mensaje.Sender = new MailAddress(remitente, remitente);
|
||||
mensaje.From = new MailAddress(remitente, remitente);
|
||||
|
||||
|
||||
if (!string.IsNullOrEmpty(cc))
|
||||
{
|
||||
mensaje.CC.Add(cc);
|
||||
}
|
||||
if (!string.IsNullOrEmpty(bcc))
|
||||
{
|
||||
mensaje.Bcc.Add(bcc);
|
||||
}
|
||||
if (adjuntos != null)
|
||||
{
|
||||
if (adjuntos.Count > 0)
|
||||
{
|
||||
foreach (var adjunto in adjuntos)
|
||||
mensaje.Attachments.Add(new Attachment(adjunto.Value, adjunto.Key));
|
||||
}
|
||||
}
|
||||
|
||||
clienteSMTP = new SmtpClient();
|
||||
|
||||
if (!string.IsNullOrEmpty(servidorSMTP))
|
||||
clienteSMTP.Host = servidorSMTP;
|
||||
clienteSMTP.Port = puerto;
|
||||
if (!string.IsNullOrEmpty(cuentaCorreo))
|
||||
{
|
||||
clienteSMTP.Credentials = new NetworkCredential(cuentaCorreo, contraseñaCorreo);
|
||||
}
|
||||
clienteSMTP.EnableSsl = usarSSL;
|
||||
|
||||
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
|
||||
ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;
|
||||
|
||||
clienteSMTP.Send(mensaje);
|
||||
}
|
||||
catch (Exception myexp)
|
||||
{
|
||||
throw new Exception(myexp.Message, myexp);
|
||||
}
|
||||
}
|
||||
|
||||
internal static void EnviaCorreoMultiplesDestinatarios(string servidorSMTP, string remitente, List<string> listaDestinatarios, string asunto, string cuerpo, List<string> ficherosAdjuntos, string CC = "", string BCC = "", string cuentaCorreo = "", string contraseñaCorreo = "", int puerto = 25, bool usarSSL = false, string responderA = "")
|
||||
{
|
||||
try
|
||||
{
|
||||
Attachment misAdjuntos;
|
||||
SmtpClient clienteSMTP;
|
||||
MailMessage miMensaje;
|
||||
int i, iCnt;
|
||||
|
||||
// // Si es alguna de kas máquinas de desarrollo de danmun, el correo se envía solamente a danmun. Son pruebas.
|
||||
// If Environment.MachineName = "WINXP-PARALLELS" OrElse
|
||||
// Environment.MachineName = "WINXP-DE-DANIEL" OrElse
|
||||
// Environment.MachineName.ToUpper = "Win81PDdanmun".ToUpper OrElse
|
||||
// Environment.MachineName.ToUpper.StartsWith("INTI") Then
|
||||
// listaDestinatarios = New List(Of String)
|
||||
// listaDestinatarios.Add("danmun@tecnosis.net")
|
||||
// End If
|
||||
|
||||
foreach (var destinatario in listaDestinatarios)
|
||||
{
|
||||
asunto = asunto.Replace(Environment.NewLine, " ");
|
||||
miMensaje = new MailMessage(new MailAddress(remitente, remitente), new MailAddress(destinatario, destinatario))
|
||||
{
|
||||
Subject = asunto,
|
||||
Body = cuerpo,
|
||||
BodyEncoding = System.Text.Encoding.UTF8
|
||||
};
|
||||
if (responderA is null || string.IsNullOrWhiteSpace(responderA))
|
||||
{
|
||||
miMensaje.ReplyToList.Add(new MailAddress(remitente, remitente));
|
||||
}
|
||||
else
|
||||
{
|
||||
miMensaje.ReplyToList.Add(new MailAddress(responderA, responderA));
|
||||
miMensaje.ReplyToList.Add(new MailAddress(remitente, remitente));
|
||||
}
|
||||
miMensaje.Sender = new MailAddress(remitente, remitente);
|
||||
|
||||
|
||||
if (!string.IsNullOrEmpty(CC))
|
||||
{
|
||||
miMensaje.CC.Add(CC);
|
||||
}
|
||||
if (!string.IsNullOrEmpty(BCC))
|
||||
{
|
||||
miMensaje.Bcc.Add(BCC);
|
||||
}
|
||||
if (ficherosAdjuntos != null)
|
||||
{
|
||||
iCnt = ficherosAdjuntos.Count - 1;
|
||||
var loopTo = iCnt;
|
||||
for (i = 0; i <= loopTo; i++)
|
||||
{
|
||||
if (File.Exists(ficherosAdjuntos[i]))
|
||||
{
|
||||
misAdjuntos = new Attachment(ficherosAdjuntos[i]);
|
||||
miMensaje.Attachments.Add(misAdjuntos);
|
||||
// misAdjuntos.Dispose()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
clienteSMTP = new SmtpClient();
|
||||
|
||||
if (!string.IsNullOrEmpty(servidorSMTP))
|
||||
clienteSMTP.Host = servidorSMTP;
|
||||
clienteSMTP.Port = puerto;
|
||||
if (!string.IsNullOrEmpty(cuentaCorreo))
|
||||
{
|
||||
clienteSMTP.Credentials = new NetworkCredential(cuentaCorreo, contraseñaCorreo);
|
||||
}
|
||||
clienteSMTP.EnableSsl = usarSSL;
|
||||
|
||||
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
|
||||
ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;
|
||||
clienteSMTP.Send(miMensaje);
|
||||
System.Threading.Thread.Sleep(1000 * (listaDestinatarios.Count - 1));
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new Exception(e.Message, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class FicheroAdjunto
|
||||
{
|
||||
public string Ruta { get; set; }
|
||||
public string NombreFichero { get; set; }
|
||||
public byte[] Fichero { get; set; }
|
||||
}
|
||||
}
|
||||
44
TokenGmail.cs
Normal file
44
TokenGmail.cs
Normal file
@@ -0,0 +1,44 @@
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Org.BouncyCastle.Asn1;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace tsCorreos
|
||||
{
|
||||
public class TokenGmail
|
||||
{
|
||||
private string _id;
|
||||
public string id
|
||||
{
|
||||
get { return _id; }
|
||||
set { _id = value; }
|
||||
}
|
||||
DateTime? UltimaUtilizacion;
|
||||
public string Token {get;set;}
|
||||
private GmailConfig _Config;
|
||||
public GmailConfig Config
|
||||
{
|
||||
get { return _Config; }
|
||||
set { _Config = value; }
|
||||
|
||||
}
|
||||
public static List<TokenGmail> ListaTokens;
|
||||
public static async Task<TokenGmail> ObtieneTokenAsync(string id)
|
||||
{
|
||||
if (ListaTokens ==null) throw new Exception("No se ha establecido la lista de tokens para poder enviar correos con Gmail");
|
||||
var tk= ListaTokens.First(x=>x.id==id);
|
||||
if (tk == null) throw new Exception("No se ha encontrado la configuración para la cuenta " + id);
|
||||
|
||||
if (!tk.UltimaUtilizacion.HasValue || DateTime.UtcNow.Subtract(tk.UltimaUtilizacion.Value).TotalMinutes > 0)
|
||||
{
|
||||
tk.Token = await GmailTokenManager.ObtenerAccessTokenAsync(tk.Config);
|
||||
tk.UltimaUtilizacion = DateTime.UtcNow;
|
||||
}
|
||||
return tk;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
22
Utilidades.cs
Normal file
22
Utilidades.cs
Normal file
@@ -0,0 +1,22 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace tsCorreos
|
||||
{
|
||||
internal class Utilidades
|
||||
{
|
||||
public static string ObtieneDirectorioAleatorio()
|
||||
{
|
||||
string sDir = System.IO.Path.GetTempPath() + System.IO.Path.GetRandomFileName();
|
||||
|
||||
while (System.IO.Directory.Exists(sDir))
|
||||
{
|
||||
sDir = System.IO.Path.GetTempPath() + "\\" + System.IO.Path.GetRandomFileName();
|
||||
}
|
||||
|
||||
System.IO.Directory.CreateDirectory(sDir);
|
||||
return sDir;
|
||||
}
|
||||
}
|
||||
}
|
||||
24
tsCorreos.csproj
Normal file
24
tsCorreos.csproj
Normal file
@@ -0,0 +1,24 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Library</OutputType>
|
||||
<RootNamespace>tsCorreos</RootNamespace>
|
||||
<TargetFramework>netstandard2.0</TargetFramework>
|
||||
<PackageId>tsCorreos</PackageId>
|
||||
<PackageTags>netstandard2.0, libreria</PackageTags>
|
||||
<Version>1.0.0</Version>
|
||||
<Authors>Manuel</Authors>
|
||||
<Company>Tecnosis S.A</Company>
|
||||
<Description>Envío de correos diferenciando Gmail del resto</Description>
|
||||
<PackageReleaseNotes>
|
||||
- 2025-09-18 Primera versión
|
||||
</PackageReleaseNotes>
|
||||
<!--<PackageReadmeFile>README.md</PackageReadmeFile>-->
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="tsGmail" Version="1.0.0" />
|
||||
<PackageReference Include="tsZip" Version="1.0.1" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
25
tsCorreos.sln
Normal file
25
tsCorreos.sln
Normal file
@@ -0,0 +1,25 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.14.36511.14 d17.14
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "tsCorreos", "tsCorreos.csproj", "{755D1138-364A-4D7B-AE31-AE66B629F9C4}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{755D1138-364A-4D7B-AE31-AE66B629F9C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{755D1138-364A-4D7B-AE31-AE66B629F9C4}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{755D1138-364A-4D7B-AE31-AE66B629F9C4}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{755D1138-364A-4D7B-AE31-AE66B629F9C4}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {2D880A2C-DB68-46CF-9084-3ECCCF6B9D78}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
Reference in New Issue
Block a user