<%@ WebHandler Language="C#" Class="Enviar" %> using System; using System.Web; using System.Net; using System.Web.Configuration; using System.Web.SessionState; public class Enviar : IHttpHandler, IReadOnlySessionState { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; Intranet.Users intranetUser; try { int Id = Convert.ToInt16(context.Request.QueryString["id"].ToString()); // UTILIZADPR AUTENTICADO intranetUser = (Intranet.Users)context.Session["intranetUser"]; // COMUNICAÇÃO A ENVIAR string comunicacaoHTML = new WebClient().DownloadString("http://" + context.Request.ServerVariables["HTTP_HOST"] + "/publico/empresas/comunicacoes.aspx?id=" + Id); // OU //string comunicacaoHTML = new WebClient().DownloadString(WebConfigurationManager.AppSettings["url"] + "/publico/empresa/comunicacoes.aspx?id=" + Id); // ENDEREÇOS SUBSCRITOS //string[] subscricoes = SiteECom.Newsletter.Subscricoes.Listagem(); string[] subscricoes = new string[] { "hugo@nersant.pt", "hugolive@gmail.com", "ugi_@hotmail.com" }; // ENVIO bool enviado = false; Intranet.Notificacao comunicacao = new Intranet.Notificacao(intranetUser.Email, subscricoes, Intranet.Empresas.Comunicacoes.Detalhes(Id).Rows[0]["titulo"].ToString()); comunicacao.Mensagem = comunicacaoHTML; //enviado = comunicacao.Enviar(); // Envio 1 a 1 /* comunicacao.Destinatarios.Remover(subscricoes); foreach (string email in subscricoes) { comunicacao.Destinatarios.Adicionar(email); enviado = comunicacao.Enviar(); comunicacao.Destinatarios.Remover(email); context.Response.Write("Enviado para: " + email); } */ // CRIAR LOG string _status = ""; if (enviado) { _status = "Enviado para " + subscricoes.Length + " endereço(s) com sucesso."; Intranet.Empresas.Comunicacoes.Log.Adicionar(Id, Intranet.Criptografia.Encriptar(comunicacaoHTML), _status, intranetUser.ID, intranetUser.Departamento.ID); _status = "Enviado para " + subscricoes.Length + " endereço(s) com sucesso."; } else { _status = "Erro no envio de comunicação: " + subscricoes.Length + " endereços."; Intranet.Empresas.Comunicacoes.Log.Adicionar(Id, Intranet.Criptografia.Encriptar(comunicacaoHTML), _status, intranetUser.ID, intranetUser.Departamento.ID); _status = "Erro no envio de comunicação: " + subscricoes.Length + " endereços."; } context.Response.Write(_status); } catch (Exception erro) { context.Response.Write("ERRO"); } } public bool IsReusable { get { return false; } } }