/// <summary> /// Returns personal macros of the contact. /// </summary> /// <param name="recipient">Recipient.</param> /// <param name="macrosCollection">Collection of macros.</param> /// <returns>The recipient macros.</returns> public rcpt_merge_var GetPersonalMergeVars(IMessageRecipientInfo recipient, IEnumerable <MacrosInfo> macrosCollection) { Dictionary <string, string> macrosValues = GetPersonalMacrosValues(recipient.ContactId, macrosCollection); return(CreateRecipientMergeVars(recipient, macrosValues)); }
/// <summary> /// Validates the sender email from the FromEmailMacro. /// </summary> /// <param name="recipient">Recipient of bulk email.</param> protected override void InternalValidate(IMessageRecipientInfo recipient) { var valueFromEmail = GetMacroValueFromRecipient(recipient, MailingConsts.FromEmailMacroKey); if (valueFromEmail != null && !MailingUtilities.ValidateEmail(valueFromEmail.Value.MacroValue)) { recipient.InitialResponseCode = (int)MailingResponseCode.CanceledSendersDomainNotVerified; } }
/// <summary> /// Validates the sender name from the FromNameMacro. /// </summary> /// <param name="recipient">Recipient of bulk email.</param> protected override void InternalValidate(IMessageRecipientInfo recipient) { var valueFromName = GetMacroValueFromRecipient(recipient, MailingConsts.FromNameMacroKey); if (valueFromName != null && valueFromName.Value.MacroValue == string.Empty) { recipient.InitialResponseCode = (int)MailingResponseCode.CanceledSendersNameNotValid; } }
/// <summary> /// Validates by custom rule. /// </summary> /// <param name="recipient">Recipient of bulk email.</param> public void Validate(IMessageRecipientInfo recipient) { if (!(recipient is IDCRecipientInfo)) { return; } if (recipient.InitialResponseCode == (int)MailingResponseCode.PostedProvider) { InternalValidate(recipient); } }
/// <summary> /// Validates the sender email from the FromEmailMacro. /// </summary> /// <param name="recipient">Recipient of bulk email.</param> protected override void InternalValidate(IMessageRecipientInfo recipient) { var valueFromEmail = GetMacroValueFromRecipient(recipient, MailingConsts.FromEmailMacroKey); if (valueFromEmail == null) { return; } var domain = DefineDomainFromEmailAddress(valueFromEmail.Value.MacroValue); if (domain == null || !_validDomains.Value.Contains(domain)) { recipient.InitialResponseCode = (int)MailingResponseCode.CanceledSendersDomainNotVerified; } }
public List <rcpt_merge_var> GetPersonalMergeVars(Select select, Dictionary <Guid, IMessageRecipientInfo> contactCollection, IEnumerable <MacrosInfo> macrosCollection) { List <rcpt_merge_var> personalMergeVars = new List <rcpt_merge_var>(); Dictionary <object, Dictionary <string, string> > results = GetPersonalMacrosValues(select, macrosCollection); foreach (KeyValuePair <object, Dictionary <string, string> > result in results) { Guid contactId = (Guid)result.Key; Dictionary <string, string> macrosValues = result.Value; if (contactCollection.ContainsKey(contactId)) { IMessageRecipientInfo recipient = contactCollection[contactId]; rcpt_merge_var personalMergeVar = CreateRecipientMergeVars(recipient, macrosValues); personalMergeVars.Add(personalMergeVar); } } return(personalMergeVars); }
/// <summary> /// Creates macros variables for recipient template. /// </summary> /// <param name="recipient">Recipient information. Contains contact identifier, recipient identifier.</param> /// <param name="macrosValues">Macros values.</param> /// <returns>Macros variables for recipient template.</returns> private rcpt_merge_var CreateRecipientMergeVars(IMessageRecipientInfo recipient, Dictionary <string, string> macrosValues) { rcpt_merge_var personalMergeVar = new rcpt_merge_var(); foreach (KeyValuePair <string, string> macros in macrosValues) { personalMergeVar.vars.Add(CreateMergeVar(macros.Key, macros.Value)); } personalMergeVar.vars.Add(CreateMergeVar( BulkEmailHyperlinkHelper.ContactIdMacrosName, recipient.ContactId.ToString() )); personalMergeVar.vars.Add(CreateMergeVar( BulkEmailHyperlinkHelper.BulkEmailRecipientIdName, recipient.Id.ToString() )); personalMergeVar.rcpt = recipient.EmailAddress; return(personalMergeVar); }
/// <summary> /// Abstract method for validation by custom rule. /// </summary> /// <param name="recipient">Recipient of bulk email.</param> protected abstract void InternalValidate(IMessageRecipientInfo recipient);
/// <summary> /// Gets value macro from recipient. /// </summary> /// <param name="recipient">Recipient of bulk email.</param> /// <param name="alias">Alias macro.</param> /// <returns>Value from macro.</returns> protected virtual (string Alias, string MacroValue)? GetMacroValueFromRecipient(IMessageRecipientInfo recipient, string alias) { var recipientItem = recipient as IDCRecipientInfo; if (recipientItem != null && recipientItem.Macros.ContainsKey(alias)) { return(Alias : alias, MacroValue : recipientItem.Macros[alias]); } return(null); }