partial         void ValidateRecipient(MelaveMalkaInvitation newValue, Action<string> error);
        void SendEmail(MelaveMalkaInvitation recipient)
        {
            using (var message = new MailMessage {
                From = Email.JournalAddress,
                SubjectEncoding = Email.DefaultEncoding,
                BodyEncoding = Email.DefaultEncoding,
                Subject = recipient.EmailSubject,
                Body = recipient.EmailSource,
                IsBodyHtml = true
            }) {
                message.To.Add(recipient.EmailAddresses);   //Comma-separated string
                Email.Hosted.Send(message);
            }

            BeginInvoke(new Action(delegate {   //The table can only be updated from the UI thread.
                Program.Table<AdReminderEmail>().Rows.Add(new AdReminderEmail {
                    Recipient = recipient,
                    Date = DateTime.Now,
                    EmailSubject = recipient.EmailSubject,
                    EmailSource = recipient.EmailSource
                });
            }));
        }
partial         void OnRecipientChanged(MelaveMalkaInvitation oldValue, MelaveMalkaInvitation newValue);