We'd like to send a mailing in a few slightly different versions to different groups. What we'd like to avoid is having two contacts, who share the same email address and are in different groups, receive two different versions of the email.

Deduping happens before a specific mailing is sent and I can exclude previous contacts who were recipients of the first mailing from the next mailing, but what I am trying to do is exclude previously emailed addresses from the next mailing, not just previously emailed contacts.

Is there any way to either exclude previously emailed addresses directly or to search for contacts who share a primary email with contacts in a previous mailing or group?

  • And no, testing shows that this doesn't happen automatically if you exclude previous recipients of a mailing.
    – Lars SG
    Commented Dec 7, 2018 at 3:42
  • what sort of number of folk sharing emails do you have?
    – petednz - fuzion
    Commented Dec 7, 2018 at 4:11
  • the simple answer i think for you is 'no'. but if v low, then make a Group of the folk who already received the email (or use the group you already had for the mailing if suitable), set up a dedupe rule to find all the folk sharing that same email, and go tag them all (manually one at a time!), or do some sql if you have the skills. one other idea i will put as an Answer but suspect it won't work
    – petednz - fuzion
    Commented Dec 7, 2018 at 4:13
  • Not entirely sure how many, but certainly high hundreds, maybe into the thousands. Can't do anything with deduping, as the majority are already marked as non-duplicates.
    – Lars SG
    Commented Dec 7, 2018 at 16:21

1 Answer 1


Hopefully someone else comes by with a simple strategy - here is an off the cuff idea.

a/ you know the emails you sent to b/ if you import emails then you can add them to a Group c/ i don't know if when you import an email that is used by several folk they all get updated, it may only update the lowest cid d/ if the import does do what you want then you can probably figure that path from there

  • Thanks Pete. As far as I've seen, if you import an email that matches two contacts, you'll actually create a third, new contact, which will be added to the group specified, and neither of the original contacts will be added to the group.
    – Lars SG
    Commented Dec 7, 2018 at 16:29
  • That should not happen if the 'update' is set and the right Dedupe rule is chosen, but as stated i v much doubted that it would cause it to add both contacts unfortunately. grabbing all the emails and doing an sql insert to add the relevant contacts to a group would be another route i suppose
    – petednz - fuzion
    Commented Dec 7, 2018 at 20:07
  • 1
    In the end, I just did it in Excel, which was a pain, but not that bad. Thanks for the suggestions!
    – Lars SG
    Commented Dec 9, 2018 at 20:25
  • We had this issue in our internal tracker as well. Since it is a fairly edge case I decided not to raise an issue in CiviCRM's tracker for a feature request, and just make a note in our documentation. But if anyone else comes across this issue then feel free to raise the request. It would be relatively straightforward to add functionality to the 'Exlcude previous recipients' logic, to exclude 'email addresses' as well as 'contacts' that received the previous mailing =]
    – John
    Commented Jan 21, 2022 at 10:36
  • 1
    And for completeness, here's a better solution to finding those emails via API4 explorer, which I've been using: civicrm.stackexchange.com/a/38496/3533
    – Lars SG
    Commented Oct 12, 2022 at 0:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.