public MailDto GetMailImpo(int idImpo, string conNection) { MailDto lst = new MailDto(); try { var con = new MaylUtilityDac("System.Data.SqlClient", conNection); var ds = con.GetMailImpo(idImpo); lst = new MailDto(); lst = (from DataRow dr in ds.Tables[0].Rows select new MailDto() { Destinatario = dr["ToRiceved"].ToString(), DestinatarioLst = dr["MailLst"].ToString(), Cc = dr["Cc"].ToString(), Ccn = dr["CCn"].ToString(), Oggetto = dr["Oggetto"].ToString(), Messaggio = "", UtenteFiguraInvio = dr["IdirizzoDiInvio"].ToString(), NominativoInvio = dr["DenominazioneInvio"].ToString(), UserMail = dr["MailConfig"].ToString(), Password = dr["Pwd"].ToString(), SsLAuto = !dr.IsNull("SsLAuto") ? Convert.ToBoolean(dr["SsLAuto"].ToString()) : (bool?)null, UseDefaultCredential = !dr.IsNull("UseDefaultCredential") ? Convert.ToBoolean(dr["UseDefaultCredential"].ToString()) : (bool?)null, SmtPostaUscita = dr["SmtPostaUscita"].ToString(), SmtpPort = Convert.ToInt32(dr["SmtpPort"].ToString()) }).ToList().FirstOrDefault(); } catch (Exception ex) { StackTrace st = new StackTrace(); StackFrame sf = st.GetFrame(0); MethodBase currentMethodName = sf.GetMethod(); string errore = $"Funzione {currentMethodName.Name}; Errore: {ex.Message}"; var dex = new DataException(ex.Message); } return(lst); }
public async Task SendMailAsyncNew(MailDto impoMail, string txtBody, int numRecord, string conNection) { var conMail = new MaylUtilityDac("System.Data.SqlClient", conNection); var mailLog = new MailLogDto(); mailLog.Data = DateTime.Now; try { var mail = new System.Net.Mail.MailMessage(); var smtpServer = new SmtpClient(); mail.SubjectEncoding = System.Text.Encoding.UTF8; mail.BodyEncoding = System.Text.Encoding.UTF8; mail.IsBodyHtml = true; smtpServer.Host = impoMail.SmtPostaUscita; if (impoMail.UseDefaultCredential != null) { smtpServer.UseDefaultCredentials = (bool)impoMail.UseDefaultCredential; } smtpServer.DeliveryMethod = SmtpDeliveryMethod.Network; smtpServer.Port = impoMail.SmtpPort; smtpServer.Credentials = new System.Net.NetworkCredential(impoMail.UserMail, impoMail.Password); if (impoMail.SsLAuto != null) { smtpServer.EnableSsl = (bool)impoMail.SsLAuto; } mail.From = new MailAddress(impoMail.UtenteFiguraInvio, impoMail.NominativoInvio); List <string> destinatario = new List <string>(); if (impoMail.Destinatario != null) { destinatario = impoMail.Destinatario.Split(';').Select(s => s.Replace(";", "")).ToList(); } if (!string.IsNullOrEmpty(impoMail.DestinatarioLst) && impoMail.DestinatarioLst.Length > 0) { destinatario.AddRange(impoMail.DestinatarioLst.Split(';').Select(s => s.Replace(";", "")).ToList()); } if (destinatario.Count > 0) { foreach (var dest in destinatario) { if (!string.IsNullOrEmpty(dest.Trim())) { mail.To.Add(dest.Trim()); } } } var destinatarioCc = impoMail.Cc.Split(';').Select(s => s.Replace(";", "")).ToList(); foreach (var dest in destinatarioCc) { if (!string.IsNullOrEmpty(dest.Trim())) { mail.CC.Add(dest.Trim()); } } mail.Subject = impoMail.Oggetto; var bd = impoMail.Messaggio.Length > 3850 ? impoMail.Messaggio.Substring(0, 3850) : impoMail.Messaggio; //limito la lunghezza del mesaggio bd += "<br /> <br />"; bd += $"<b>Numero Articoli trovati:{numRecord}</b>"; bd += "<br /> <br />"; bd += txtBody; mail.Body = bd; mailLog.Commenti = $"Invio file a {impoMail.Destinatario} Lista {impoMail.DestinatarioLst}; CC {impoMail.Cc}; messaggio: { impoMail.Messaggio}; "; mail.Priority = MailPriority.High; await smtpServer.SendMailAsync(mail); mailLog.Esito = 1; } catch (Exception ex) { mailLog.Commenti = $"Invio file a {impoMail.Destinatario} - Lista {impoMail.DestinatarioLst}; Errore: {ex.Message}"; mailLog.Esito = 0; } //salvo il log della spedizione effettuata conMail.SaveMailLog(mailLog.Commenti, mailLog.Esito, mailLog.Tipo); }