/// <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; }