Discourse-bcc: send individual PMs to users

I’ve just released discourse-bcc, a plugin that allows you to send a individual personal messages to several users at once.

When enabled, you’ll see a checkbox when you start composing a PM:

If you check that box, instead of one PM that everyone shares access to, Discourse will create 1 PM per user provided.

If you add a group, each member of the group will be sent an individual PM.

The plugin is fairly new and while I’ve confirmed it’s working it should be considered a beta right now. Please let me know if you have any feedback!


Amazing! This makes a cumbersome method obsolete that I have been using with postman and the API to send what we call “bulk PMs” to a selection of users. I have not installed your plugin yet, but am super keen.

Would it be possible for you to add the ability to cc another user or group as well as the individual recipient of the message? This is something we depend on a great deal to make sure we don’t drop the ball on engagement via PM with specific members.

With our bulk PM method we also were able to personalize the message a bit and add tags which is very useful, but likely out of scope for this plugin.


Figuring out who to cc vs bcc makes it a lot more complicated from a UX and implementation perspective so I don’t think I’ll be adding that any time soon. However, if you have a PR for that functionality I’d certainly consider it!


Thanks, Robin! I guess I was thinking of a simple admin setting like this:

Or “Invite site contact group to all discourse-bcc messages”.

Did a test and it works as advertised - nice job. I did not test the limits but are there limits? Maybe there should be to prevent people (including staff) from bcc’ing their whole community. :wink:

It’s a staff only feature right now so there are no limits. You have to trust your moderators/admins to use it properly.

Also I don’t love auto adding to all BCC messages as it’s a bit hidden and easy to forget.


Just to confirm I understand usage of this correctly:

If I mix individual users and groups as recipients of the same single message that gets the :white_check_mark: for this feature – will those individuals and all members of the groups get a copy of the message?

Also, for individuals who are a member of more than one specified group, or of a single group and also listed as an individual recipient – will they get a duplicate copy of the message?

I get it but am not sure this is a good idea. People will be bcc’ing trust_level_0 and trust_level_1 and trust_level_2 and trust_level_3 and trust_level_4 to reach out to all of their members. Or just create a group containing all of their members and bcc that group.

I hear you. However, after using this a few times I am still wishing there were a way to architect in a group bcc. Our helpdesk team use it to send targeted messages to specific people to offer them an opportunity to engage, e.g. to complete our annual survey or to rsvp for a meet and greet event in their country. The follow-up after that, which may come weeks or months later, is ideally handled by other members of the group, and not by the person who sent the message. We also have turnover on our team so it may be that a person sends the message who later is not the appropriate person to get a response and be expected to follow up.

What if this feature could be enabled on a group basis, and only members in the group could use it? And if the group itself is included, it is not sent a separate message but is included in each message sent?

Good questions! Worth testing. I have included users and groups, and they have always received one copy each as far as I could tell. I have not verified what happens if you included multiple groups that include the same users. My suspicion is that each user will get just one message as you might expect.

Yes, groups are expanded to individuals when it is sent. If the same individual is included more than once (either as part of multiple groups or being manually added as a user) they are only sent one message.

It’s true this tool can be abused to message all members, but it is an optional plugin and restricts this functionality to staff.

That makes it remarkably more complicated though. The currently implementation leverages our existing private message code without having to add additional queries to handle these cases.


Can someone verify this is still working as intended? I sent out a PM using the BCC feature and despite the pop-up dialog saying individual messages were being sent, everyone got the full distribution list at the bottom of the email notification, and there is one message in my “messages list” with every (staged and standard) user listed, just like a mass group message.

It seems the message also went out twice to the all recipients.

I’m afraid I’ve just set up a horrible “reply all” situation as folks begin to reply… :anguished:


Huh. Hard to remember maybe in retrospect, but are you sure you selected the bcc feature? Sounds like it was sent out like a normal PM. I will test it now but last time we used it two weeks ago, it worked just as advertised.

Edit: yep, I can confirm that it works as intended. Is there anything you recall that you did differently than normal? How many people did you send to? Maybe there’s an issue with volume? Not sure. I’ve never sent to more than a handful at a time.

Sorry this happened to you! How frustrating. :frowning:


One thing is I used email addresses and user accounts both. Maybe that makes a difference?


THAT I am able to replicate. Send a PM to two users and to one email address, and select the bcc feature. Only two PMs to the usernames will be created and the email address will be included in both of those PMs. The email address does not get its own PM.

I did not test any other combos, but this seems enough to me to indicate there’s a bug.


Thank you for confirming. I did quite a few more than two email addresses, and also some users. All of the email addresses did seem to get staged user accounts, though, which is what I expected and a good thing. But yeah they all got lumped into the single message.

Not sure why the message seemed to be sent twice (two identical copies each with the same set of recipients), could you repro that when you tried?


I did get something like this happening - the staged user got included in two other messages, hence two. Can you confirm this too? Did you maybe send to only two users and a bunch of staged users? The staged users then each got two?

1 Like

Yep. Two other real users (and myself) and then a set of email addresses. :+1:

Unfortunately I quickly removed all the recipients (manually) from each message and then deleted each one, as to hopefully prevent the “reply all” mess with an error back to folks, so it’s hard for me to go back and do much investigating.


It sounds like a great plugin to make special announcements to particular groups… But does it throttle sending emails? Because if you send to a large group you may end up hitting SMTP 450 error or worse, loosing some messages and not knowing who received what.

It does not do any throttling. That is up to you to set up with your mail server.


Confirmed a little more details about the bug of revealing recipients.

  1. Send a “BCC message” to Existing Full User A, Existing Full User B, non-user email address C, and non-user email address D.
  2. Staged user accounts are created for C & D.
  3. Two messages are created: message (1) includes Sender, A, C, and D; and message (2) includes Sender, B, C, and D.

In other words, the staged users get two copies of the message, one for each of the “real user” recipients. (Ostensibly, if there were 20 real users, the staged accounts would get 20 emails.) In each of the two emails, the “Participants:” line lists the sender, the A (or B) real user recipient, and all of the staged user accounts. Each existing “real user” account only gets one copy.


I just fixed this bug, thanks for reporting it! :slightly_smiling_face:


It seems as though discourse-bcc doesn’t offer the option to BCC if you’re messaging a single group? Is that expected?

1 Like