<%@ 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()); // UTILIZADOR AUTENTICADO intranetUser = (Intranet.Users)context.Session["intranetUser"]; // NEWSLETTER A ENVIAR string newsletterHTML = new WebClient().DownloadString(System.Web.Configuration.WebConfigurationManager.AppSettings["newsletter"] + "?id=" + Id); // ENDEREÇOS SUBSCRITOS string[] subscricoes = SiteECom.Newsletter.Subscricoes.Listagem(); // Criar grupo dentro os servidores de e-mail da NERSANT // Este domínio já tem de estar criado no servidor (grupos.plataformaongd.pt) string alias = "newsletter@grupos.plataformaongd.pt"; Intranet.Qmail.Abrantes.CriarGrupo(alias, subscricoes); Intranet.Qmail.Sede.CriarGrupo(alias, subscricoes); // ENVIO bool enviado = false; Intranet.Notificacao newsletter = new Intranet.Notificacao(System.Web.Configuration.WebConfigurationManager.AppSettings["newsletter_from"].ToString(), new string[] { alias }, "NEWSLETTER N." + SiteECom.Newsletter.Detalhes(Id).Rows[0]["titulo"].ToString()); newsletter.Mensagem = newsletterHTML; enviado = newsletter.Enviar(); // Envio 1 a 1 /* newsletter.Destinatarios.Remover(subscricoes); foreach (string email in subscricoes) { newsletter.Destinatarios.Adicionar(email); enviado = newsletter.Enviar(); newsletter.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."; SiteECom.Newsletter.Log.Adicionar(Id, newsletterHTML, _status, intranetUser.ID, intranetUser.Departamento.ID); _status = "Enviado para " + subscricoes.Length + " endereço(s) com sucesso."; } else { _status = "Erro no envio de newsletter: " + subscricoes.Length + " endereços."; SiteECom.Newsletter.Log.Adicionar(Id, newsletterHTML, _status, intranetUser.ID, intranetUser.Departamento.ID); _status = "Erro no envio de newsletter: " + subscricoes.Length + " endereços."; } context.Response.Write(_status); } catch (Exception) { context.Response.Write("ERRO"); } } public bool IsReusable { get { return false; } } }