Ejemplo n.º 1
0
        public bool ProcessMail(SendableMail mail)
        {
            var success = true;

            foreach (var connInfo in GroupByHost(mail))
            {
                var addresses = connInfo.Addresses.Select(a => a.Address).ToArray();
                var connector = connInfo.Connector;

                var client = SMTPClient.Create(_container, connector, connInfo.Host, connInfo.Port);

                if (!client.Connect())
                {
                    success = false;

                    TriggerMailError(mail, connInfo, client.LastStatus, client.LastException);
                    continue;
                }

                if (!client.SendMail(mail.From.Address, addresses, mail.ToString()))
                {
                    success = false;

                    TriggerMailError(mail, connInfo, client.LastStatus, client.LastException);
                }

                client.Close();

                // TODO
            }

            return(success);
        }