public DkimSigner([NotNull]IPrivateKeySigner privateKeySigner, [NotNull]string domain, [NotNull]string selector, string[] headersToSign = null)
{
if (privateKeySigner == null)
{
throw new ArgumentNullException("privateKeySigner");
}
if (domain == null)
{
throw new ArgumentNullException("domain");
}
if (domain.Length == 0)
{
throw new ArgumentException("Cannot be empty.", "domain");
}
if (selector == null)
{
throw new ArgumentNullException("selector");
}
if(selector.Length == 0)
{
throw new ArgumentException("Cannot be empty.", "selector");
}
_privateKeySigner = privateKeySigner;
_domain = domain;
_selector = selector;
_headersToSign = headersToSign ?? new string[]{"From"};
if (_headersToSign.Length ==0)
{
_headersToSign = new string[] {"From"};
}
this.Encoding = Encoding.UTF8;
}