Ejemplo n.º 1
0
        private void SendCompletedCallback(object sender, AsyncCompletedEventArgs e)
        {
            MailSent = false;
            string Token = (string)e.UserState;

            if (!e.Cancelled && e.Error == null)
            {
                MailSent = true;
                if (MailSent)
                {
                    EmailProcedimento.UtilizadorModificação = UserID;
                    EmailProcedimento.DataHoraModificação   = DateTime.Now;
                    EmailProcedimento.ObservacoesEnvio      = "Mensagem enviada com Sucesso";
                    EmailProcedimento.Email = true;
                    DBProcedimentosCCP.__UpdateEmailProcedimento(EmailProcedimento);
                }
            }

            if (e.Error != null)
            {
                EmailProcedimento.ObservacoesEnvio = "Não foi possível enviar a mensagem " + DateTime.Now.ToString();
                DBProcedimentosCCP.__UpdateEmailProcedimento(EmailProcedimento);
            }
        }
Ejemplo n.º 2
0
        public void SendEmail()
        {
            if (EmailProcedimento == null)
            {
                return;
            }

            // the From property must be set and be a valid email address
            if (string.IsNullOrEmpty(From) && !IsValidEmail(From))
            {
                EmailProcedimento.ObservacoesEnvio = "Email do remetente inválido!";

                DBProcedimentosCCP.__UpdateEmailProcedimento(EmailProcedimento);
                return;
            }

            /*
             *          if (string.IsNullOrEmpty(EmailProcedimento.EmailDestinatário))
             *          {
             *              if (string.IsNullOrEmpty(EmailProcedimento.ObservacoesEnvio))
             *                  EmailProcedimento.ObservacoesEnvio = "Não há Destinatários!";
             *              else
             *                  EmailProcedimento.ObservacoesEnvio = " ** Não há Destinatários!";
             *
             *              DBProcedimentosCCP.__UpdateEmailProcedimento(EmailProcedimento);
             *              return;
             *          }
             *
             *
             *           split EmailDestinatários to obtain the valid email addresses
             *          foreach(var eaddr in EmailProcedimento.EmailDestinatário.Split(';'))
             *          {
             *              if (IsValidEmail(eaddr))
             *              {
             *                  To.Add(eaddr);
             *              }
             *              else
             *              {
             *                  if (string.IsNullOrEmpty(EmailProcedimento.ObservacoesEnvio))
             *                      EmailProcedimento.ObservacoesEnvio = "Endereço " + eaddr + " não é válido!";
             *                  else
             *                      EmailProcedimento.ObservacoesEnvio = " ** Endereço " + eaddr + " não é válido!";
             *              }
             *          }
             */

            if (To == null || To.Count <= 0)
            {
                EmailProcedimento.ObservacoesEnvio = "Não há destinatários";
                return;
            }

            DBProcedimentosCCP.__UpdateEmailProcedimento(EmailProcedimento);

            SmtpClient        Client      = new SmtpClient(Config.Host, Config.Port);
            NetworkCredential Credentials = new NetworkCredential(Config.Username, Config.Password);

            Client.UseDefaultCredentials = true;
            Client.Credentials           = Credentials;
            Client.EnableSsl             = Config.SSL;

            MailMessage MMessage = new MailMessage
            {
                From = new MailAddress(From, DisplayName)
            };

            foreach (var t in To)
            {
                MMessage.To.Add(new MailAddress(t));
            }

            foreach (var cc in CC)
            {
                if (IsValidEmail(cc))
                {
                    MMessage.CC.Add(cc);
                }
            }

            foreach (var bcc in BCC)
            {
                if (IsValidEmail(bcc))
                {
                    MMessage.Bcc.Add(bcc);
                }
            }

            MMessage.Subject    = Subject;
            MMessage.Body       = Body;
            MMessage.IsBodyHtml = IsBodyHtml;

            //MMessage.Attachments.Add

            Client.SendCompleted += new SendCompletedEventHandler(SendCompletedCallback);

            string UserState = "EmailProcedimentos";

            Client.SendAsync(MMessage, UserState);
        }