/// <summary>
        /// Sends an email validation message to a user
        /// </summary>
        /// <param name="user">user instance</param>
        /// <param name="languageId">Message language identifier</param>
        /// <returns>Queued email identifier</returns>
        public virtual Guid SendUserEmailValidationMessage(User user, Guid languageId)
        {
            Guard.IsNotNull(user, "user");

            languageId = EnsureLanguageIsActive(languageId);

            var messageTemplate = GetLocalizedActiveMessageTemplate("User.WelcomeMessage", languageId);
            if (messageTemplate == null)
                return Guid.Empty;

            var userTokens = GenerateTokens(user);

            var emailAccount = GetEmailAccountOfMessageTemplate(messageTemplate, languageId);
            var toEmail      = user.Username;
            var toName       = user.GetFullName();
            return SendNotification(messageTemplate, emailAccount,
                languageId, userTokens,
                toEmail, toName);
        }