public override void Execute(IEmailItem emailItem = null, int? lastExitCode = null)
        {
            if (AppliesTo(emailItem, lastExitCode))
            {
                if (null != emailItem && !emailItem.Message.IsSystemMessage && null == emailItem.Message.TnefPart)
                {
                    using (var dkimSigner = new DefaultDkimSigner(Algorithm, HeadersToSign, Selector, Domain, EncodedKey))
                    {
                        using (var inputStream = emailItem.MimeReadStream)
                        {
                            if (dkimSigner.CanSign(inputStream))
                            {
                                using (var outputStream = emailItem.GetMimeWriteStream())
                                {
                                    dkimSigner.Sign(inputStream, outputStream);
                                }
                            }
                        }
                    }
                }

                if (null != Handlers && Handlers.Count > 0)
                {
                    foreach (IHandler handler in Handlers)
                    {
                        handler.Execute(emailItem, lastExitCode);
                    }
                }
            }
        }
        public override void Execute(IEmailItem emailItem = null, int?lastExitCode = null)
        {
            if (AppliesTo(emailItem, lastExitCode))
            {
                if (null != emailItem && !emailItem.Message.IsSystemMessage && null == emailItem.Message.TnefPart)
                {
                    using (var dkimSigner = new DefaultDkimSigner(Algorithm, HeadersToSign, Selector, Domain, EncodedKey))
                    {
                        using (var inputStream = emailItem.MimeReadStream)
                        {
                            if (dkimSigner.CanSign(inputStream))
                            {
                                using (var outputStream = emailItem.GetMimeWriteStream())
                                {
                                    dkimSigner.Sign(inputStream, outputStream);
                                }
                            }
                        }
                    }
                }

                if (null != Handlers && Handlers.Count > 0)
                {
                    foreach (var handler in Handlers)
                    {
                        handler.Execute(emailItem, lastExitCode);
                    }
                }
            }
        }