public static SmtpClient getSmtpServer(SitoWebAgenzia SWA) { SmtpClient SmtpServer = new SmtpClient(SWA.SmtpHost); SmtpServer.Port = SWA.SmtpPort; SmtpServer.UseDefaultCredentials = true; if (SWA.SmtpAutenticazione) { SmtpServer.Credentials = new System.Net.NetworkCredential( SWA.SmtpUser, SWA.SmtpPassword ); } SmtpServer.EnableSsl = SWA.SmtpSSL; return SmtpServer; }
public static string SendEmail(string Lingua, string ApiKey, int IDAgenzia, int IDImmobile, bool Cantiere, bool CantiereSoluzione, bool GenericInfo, string NomeCognome, string Email, string TelefonoUtente, string Messaggio, bool Privacy, string PrivacyUrl) { string r = ""; CultureInfo cul = new CultureInfo("it-IT"); Thread.CurrentThread.CurrentCulture = cul; try { SqlConnection connImmo01 = new SqlConnection(ConfigurationManager.ConnectionStrings["DBIMMO01ConnectionString"].ConnectionString); connImmo01.Open(); using (connImmo01) { Agenzia Ag = new Agenzia(); Ag.Load(connImmo01, IDAgenzia, ApiKey, Lingua); if (!Ag.Error) { using (SqlCommand cmd = new SqlCommand()) { cmd.CommandText = "[AgenzieSitiWeb_ParametriSmtp_Dettaglio]"; cmd.CommandType = CommandType.StoredProcedure; cmd.Connection = connImmo01; cmd.CommandTimeout = 600; cmd.Parameters.Add("@ApiKey", SqlDbType.UniqueIdentifier).Value = new System.Data.SqlTypes.SqlGuid(ApiKey); cmd.Parameters.Add("@IDAgenzia", SqlDbType.Int).Value = Ag.IDAgenzia; var adapt = new SqlDataAdapter(); adapt.SelectCommand = cmd; DataTable dTable = new DataTable(); adapt.Fill(dTable); adapt.Dispose(); if (dTable.Rows.Count == 1) { DataRow dRow = dTable.Rows[0]; SitoWebAgenzia SWA = new SitoWebAgenzia(); SWA.IDAgenzia = (int)dRow["IDAgenzia"]; SWA.SmtpHost = (string)dRow["SmtpHost"]; SWA.SmtpUser = (string)dRow["SmtpUser"]; SWA.SmtpPort = (int)dRow["SmtpPort"]; SWA.SmtpPassword = (string)dRow["SmtpPassword"]; SWA.SmtpTo = (string)dRow["SmtpTo"]; SWA.SmtpFrom = (string)dRow["SmtpFrom"]; SWA.SmtpCC = (string)dRow["SmtpCC"]; SWA.SmtpAutenticazione = (bool)dRow["SmtpAutenticazione"]; SWA.SmtpSSL = (bool)dRow["SmtpSSL"]; if (SWA.SmtpHost != "") { if (Ag.Logo1 != "") { Ag.Logo1 = string.Format(ConfigurationManager.AppSettings["percorsoLogo"], Ag.IDAgenzia.ToString(), Ag.Logo1); } SmtpClient SmtpServer1 = getSmtpServer(SWA); string urlFoto1 = ""; string templateMsgUtente = ""; string templateMsgAgenzia = ""; if (!Cantiere && !CantiereSoluzione && !GenericInfo) { Annuncio Ann = new Annuncio(); Ann.Load(connImmo01, IDImmobile, Lingua); urlFoto1 = Ann.UrlFoto1; templateMsgUtente = string.Format(ConfigurationManager.AppSettings["templateEmailMessaggioUtente"], (Ag.Logo1 != "") ? string.Format(ConfigurationManager.AppSettings["templateEmailMessaggioAgenziaLogoTag"], "cid:LogoAgenzia") : string.Empty, NomeCognome, string.Format(ConfigurationManager.AppSettings["templateEmailMessaggioFotoAnnuncio"], "cid:FotoAnnuncio"), Ann.TipologiaContrattoComune, (Ann.Prezzo > 0) ? string.Format("{0:C}", Ann.Prezzo) : dicitura("ND", Lingua), (Ann.MQ > 0) ? string.Format("{0} MQ", Ann.MQ) : dicitura("ND", Lingua), (Ann.NrLocali > 0) ? string.Format("{0} {1}", Ann.NrLocali, dicitura("Locali", Lingua)) : dicitura("ND", Lingua), (Ann.Riferimento != "") ? Ann.Riferimento : dicitura("ND", Lingua), string.Format(ConfigurationManager.AppSettings["templateEmailMessaggioFotoUtente"], "cid:FotoUtente"), Email, TelefonoUtente, Messaggio, Ag.Nome, string.Format("{0} - {1}<br />{2}", Ag.Indirizzo, Ag.Comune, (Ag.Telefono != "") ? string.Format("{0}: {1}", dicitura("Telefono", Lingua), Ag.Telefono) : string.Empty ), (PrivacyUrl != "") ? string.Format("<a href=\"{0}\">{1}</a>", PrivacyUrl, dicitura("PrivacyUtilizzo", Lingua)) : string.Empty ); templateMsgAgenzia = string.Format(ConfigurationManager.AppSettings["templateEmailMessaggioAgenzia"], (Ag.Logo1 != "") ? string.Format(ConfigurationManager.AppSettings["templateEmailMessaggioAgenziaLogoTag"], "cid:LogoAgenzia") : string.Empty, NomeCognome, string.Format(ConfigurationManager.AppSettings["templateEmailMessaggioFotoAnnuncio"], "cid:FotoAnnuncio"), Ann.TipologiaContrattoComune, (Ann.Prezzo > 0) ? string.Format("{0:C}", Ann.Prezzo) : dicitura("ND", Lingua), (Ann.MQ > 0) ? string.Format("{0} MQ", Ann.MQ) : dicitura("ND", Lingua), (Ann.NrLocali > 0) ? string.Format("{0} {1}", Ann.NrLocali, dicitura("Locali", Lingua)) : dicitura("ND", Lingua), (Ann.Riferimento != "") ? Ann.Riferimento : dicitura("ND", Lingua), string.Format(ConfigurationManager.AppSettings["templateEmailMessaggioFotoUtente"], "cid:FotoUtente"), Email, TelefonoUtente, Messaggio); } if (Cantiere) { AnnuncioCantiere Ann = new AnnuncioCantiere(); Ann.Load(connImmo01, IDImmobile, Lingua); urlFoto1 = Ann.UrlFoto1; templateMsgUtente = string.Format(ConfigurationManager.AppSettings["templateEmailMessaggioUtente"], (Ag.Logo1 != "") ? string.Format(ConfigurationManager.AppSettings["templateEmailMessaggioAgenziaLogoTag"], "cid:LogoAgenzia") : string.Empty, NomeCognome, string.Format(ConfigurationManager.AppSettings["templateEmailMessaggioFotoAnnuncio"], "cid:FotoAnnuncio"), string.Format(dicitura("CantiereA", Lingua), Ann.Comune), (Ann.PrezzoRange != "") ? Ann.PrezzoRange : dicitura("ND", Lingua), (Ann.MQRange != "") ? Ann.MQRange : dicitura("ND", Lingua), (Ann.NrLocaliRange != "") ? Ann.NrLocaliRange : dicitura("ND", Lingua), (Ann.Riferimento != "") ? Ann.Riferimento : dicitura("ND", Lingua), string.Format(ConfigurationManager.AppSettings["templateEmailMessaggioFotoUtente"], "cid:FotoUtente"), Email, TelefonoUtente, Messaggio, Ag.Nome, string.Format("{0} - {1}<br />{2}", Ag.Indirizzo, Ag.Comune, (Ag.Telefono != "") ? string.Format("{0}: {1}", dicitura("Telefono", Lingua), Ag.Telefono) : string.Empty ), (PrivacyUrl != "") ? string.Format("<a href=\"{0}\">{1}</a>", PrivacyUrl, dicitura("PrivacyUtilizzo", Lingua)) : string.Empty ); templateMsgAgenzia = string.Format(ConfigurationManager.AppSettings["templateEmailMessaggioAgenzia"], (Ag.Logo1 != "") ? string.Format(ConfigurationManager.AppSettings["templateEmailMessaggioAgenziaLogoTag"], "cid:LogoAgenzia") : string.Empty, NomeCognome, string.Format(ConfigurationManager.AppSettings["templateEmailMessaggioFotoAnnuncio"], "cid:FotoAnnuncio"), string.Format(dicitura("CantiereA", Lingua), Ann.Comune), (Ann.PrezzoRange != "") ? Ann.PrezzoRange : dicitura("ND", Lingua), (Ann.MQRange != "") ? Ann.MQRange : dicitura("ND", Lingua), (Ann.NrLocaliRange != "") ? Ann.NrLocaliRange : dicitura("ND", Lingua), (Ann.Riferimento != "") ? Ann.Riferimento : dicitura("ND", Lingua), string.Format(ConfigurationManager.AppSettings["templateEmailMessaggioFotoUtente"], "cid:FotoUtente"), Email, TelefonoUtente, Messaggio); } if (CantiereSoluzione) { AnnuncioCantiereSoluzione Ann = new AnnuncioCantiereSoluzione(); Ann.Load(connImmo01, IDImmobile, Lingua); urlFoto1 = Ann.UrlFoto1; templateMsgUtente = string.Format(ConfigurationManager.AppSettings["templateEmailMessaggioUtente"], (Ag.Logo1 != "") ? string.Format(ConfigurationManager.AppSettings["templateEmailMessaggioAgenziaLogoTag"], "cid:LogoAgenzia") : string.Empty, NomeCognome, string.Format(ConfigurationManager.AppSettings["templateEmailMessaggioFotoAnnuncio"], "cid:FotoAnnuncio"), string.Format(dicitura("CantiereSoluzioneA", Lingua), Ann.Comune), (Ann.PrezzoRange != "") ? Ann.PrezzoRange : dicitura("ND", Lingua), (Ann.MQRange != "") ? Ann.MQRange : dicitura("ND", Lingua), (Ann.NrLocali > 0) ? Ann.NrLocali.ToString() : dicitura("ND", Lingua), (Ann.Riferimento != "") ? Ann.Riferimento : dicitura("ND", Lingua), string.Format(ConfigurationManager.AppSettings["templateEmailMessaggioFotoUtente"], "cid:FotoUtente"), Email, TelefonoUtente, Messaggio, Ag.Nome, string.Format("{0} - {1}<br />{2}", Ag.Indirizzo, Ag.Comune, (Ag.Telefono != "") ? string.Format("{0}: {1}", dicitura("Telefono", Lingua), Ag.Telefono) : string.Empty ), (PrivacyUrl != "") ? string.Format("<a href=\"{0}\">{1}</a>", PrivacyUrl, dicitura("PrivacyUtilizzo", Lingua)) : string.Empty ); templateMsgAgenzia = string.Format(ConfigurationManager.AppSettings["templateEmailMessaggioAgenzia"], (Ag.Logo1 != "") ? string.Format(ConfigurationManager.AppSettings["templateEmailMessaggioAgenziaLogoTag"], "cid:LogoAgenzia") : string.Empty, NomeCognome, string.Format(ConfigurationManager.AppSettings["templateEmailMessaggioFotoAnnuncio"], "cid:FotoAnnuncio"), string.Format(dicitura("CantiereSoluzioneA", Lingua), Ann.Comune), (Ann.PrezzoRange != "") ? Ann.PrezzoRange : dicitura("ND", Lingua), (Ann.MQRange != "") ? Ann.MQRange : dicitura("ND", Lingua), (Ann.NrLocali > 0) ? Ann.NrLocali.ToString() : dicitura("ND", Lingua), (Ann.Riferimento != "") ? Ann.Riferimento : dicitura("ND", Lingua), string.Format(ConfigurationManager.AppSettings["templateEmailMessaggioFotoUtente"], "cid:FotoUtente"), Email, TelefonoUtente, Messaggio); } if (GenericInfo) { templateMsgUtente = string.Format(ConfigurationManager.AppSettings["templateEmailWidgetRichiestaInfoMessaggioUtente"], (Ag.Logo1 != "") ? string.Format(ConfigurationManager.AppSettings["templateEmailMessaggioAgenziaLogoTag"], "cid:LogoAgenzia") : string.Empty, NomeCognome, string.Format(ConfigurationManager.AppSettings["templateEmailMessaggioFotoUtente"], "cid:FotoUtente"), Email, TelefonoUtente, Messaggio, Ag.Nome, string.Format("{0} - {1}<br />{2}", Ag.Indirizzo, Ag.Comune, (Ag.Telefono != "") ? string.Format("{0}: {1}", dicitura("Telefono", Lingua), Ag.Telefono) : string.Empty ), (PrivacyUrl != "") ? string.Format("<a href=\"{0}\">{1}</a>", PrivacyUrl, dicitura("PrivacyUtilizzo", Lingua)) : string.Empty ); templateMsgAgenzia = string.Format(ConfigurationManager.AppSettings["templateEmailWidgetRichiestaInfoMessaggioAgenzia"], (Ag.Logo1 != "") ? string.Format(ConfigurationManager.AppSettings["templateEmailMessaggioAgenziaLogoTag"], "cid:LogoAgenzia") : string.Empty, NomeCognome, string.Format(ConfigurationManager.AppSettings["templateEmailMessaggioFotoAnnuncio"], "cid:FotoAnnuncio"), string.Format(ConfigurationManager.AppSettings["templateEmailMessaggioFotoUtente"], "cid:FotoUtente"), Email, TelefonoUtente, Messaggio); } ArrayList LR = getLinkedResources(Ag.Logo1, Ag.IDAgenzia, urlFoto1); MailMessage mailUtente = new MailMessage(SWA.SmtpFrom, Email); mailUtente.Body = templateMsgUtente; mailUtente.IsBodyHtml = true; mailUtente.AlternateViews.Add(getAlternateView(templateMsgUtente, LR)); mailUtente.Subject = dicitura("RichiestaInformazioni", Lingua); SmtpServer1.Send(mailUtente); SmtpServer1.Dispose(); ArrayList LR2 = getLinkedResources(Ag.Logo1, Ag.IDAgenzia, urlFoto1); SmtpClient SmtpServer2 = getSmtpServer(SWA); MailMessage mailAgenzia = new MailMessage(SWA.SmtpFrom, SWA.SmtpTo); mailAgenzia.Body = templateMsgAgenzia; mailAgenzia.IsBodyHtml = true; mailAgenzia.ReplyTo = new MailAddress(Email); mailAgenzia.AlternateViews.Add(getAlternateView(templateMsgAgenzia, LR2)); mailAgenzia.Subject = dicitura("RichiestaInformazioni", Lingua); if (SWA.SmtpCC != "") { mailAgenzia.CC.Add(SWA.SmtpCC); } SmtpServer2.Send(mailAgenzia); SmtpServer2.Dispose(); } } } } } connImmo01.Close(); connImmo01.Dispose(); r = "ok"; } catch (Exception ex) { r = "error"; throw ex; } return r; }