Пример #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Forwarder"/> class.
        /// </summary>
        /// <param name="options">The injected options.</param>
        /// <param name="emailSender">The injected email sender.</param>
        /// <param name="database">The injected database.</param>
        public Forwarder(Options options, IEmailSender emailSender, IEmailDatabase database)
        {
            _options = options;
            _sender  = emailSender;

            emailEntryCache = new SessionObjectCache <string, IEmailEntry>(database.Find);
            toCache         = new SessionObjectCache <MimeMessage, string>((message) =>
            {
                string to = message.Headers[OriginalToHeader];
                // Check if the to is a local user
                if (to.Contains(Constants.AtSymbol))
                {
                    System.Net.Mail.MailAddress address = new System.Net.Mail.MailAddress(to);
                    return(address.User);
                }
                else
                {
                    // probably a local user
                    return(to + LocalSuffix);
                }
            });
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="ForwardingController"/> class.
 /// </summary>
 /// <param name="emailDatabase">The injected email database.</param>
 public ForwardingController(IEmailDatabase emailDatabase)
 {
     _emailDatabase = emailDatabase;
 }