public virtual bool Send(ContactInput input, Func<string, object, string> renderViewAsString) {

         EnsureConfig();

         var message = new MailMessage {
            To = { this.config.To },
            ReplyToList = { new MailAddress(input.Email, input.Name) },
            Subject = input.Subject,
            Body = renderViewAsString("_MailHtml", input)
         };

         if (this.config.From.HasValue())
            message.From = new MailAddress(this.config.From);

         if (this.config.CC.HasValue())
            message.CC.Add(this.config.CC);

         if (this.config.Bcc.HasValue())
            message.Bcc.Add(this.config.Bcc);

         try {
            this.smtpClient.Send(message);

         } catch (SmtpException ex) {
            
            LogException(ex);

            return false;
         }

         return true;
      }
 public IndexViewModel(ContactInput inputModel) {
    this.InputModel = inputModel;
 }
 protected virtual void InitializeContactInput(ContactInput input) { }