# Envoyer un MP à une adresse e-mail depuis un plugin

**URL:** https://meta.discourse.org/t/send-pm-to-an-email-adress-from-a-plugin/280702
**Category:** Development
**Created:** [Octobre 2, 2023, 6:06 UTC](https://meta.discourse.org/t/send-pm-to-an-email-adress-from-a-plugin/280702 "2023-10-02T06:06:16Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![Luicid](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/luicid/32/306711_2.png) [@Luicid](https://meta.discourse.org/u/Luicid)
#### Post date: [Octobre 2, 2023, 6:06 UTC](https://meta.discourse.org/t/send-pm-to-an-email-adress-from-a-plugin/280702/1 "2023-10-02T06:06:17Z")

</div>

Bonjour,  
Je construis un plugin et j’ai besoin d’envoyer quelque chose à l’e-mail d’un utilisateur.  
J’utilise

```plaintext
 creator = PostCreator.new(test_user, {
        target_recipients: "someone@toto.com",
        archetype: Archetype.private_message,
        subtype: TopicSubtype.system_message,
        title: "Hello test subject",
        raw: "This is the message. Does it work ?"
      })

```

_test\_user_ est un administrateur

Mais à chaque fois que j’essaie d’envoyer en utilisant cela, j’obtiens l’erreur :  
**`Topic is empty`**

Des idées ?

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [Octobre 2, 2023, 6:54 UTC](https://meta.discourse.org/t/send-pm-to-an-email-adress-from-a-plugin/280702/2 "2023-10-02T06:54:26Z")

</div>

Selon les spécifications, cela devrait prendre un nom de groupe ou un nom d’utilisateur&nbsp;:

> <https://github.com/discourse/discourse/blob/7019dbcfe123626c279e3f3f5733683eaec4008f/spec/requests/posts_controller_spec.rb#L1243>

> <https://github.com/discourse/discourse/blob/7019dbcfe123626c279e3f3f5733683eaec4008f/spec/requests/posts_controller_spec.rb#L1540>

---

<div class="post-metadata">

### Author: ![Luicid](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/luicid/32/306711_2.png) [@Luicid](https://meta.discourse.org/u/Luicid)
#### Post date: [Octobre 2, 2023, 7:44 UTC](https://meta.discourse.org/t/send-pm-to-an-email-adress-from-a-plugin/280702/3 "2023-10-02T07:44:02Z")

</div>

Bonjour Robert,

C’est étrange car en front-end, Discourse utilise une charge utile comme celle-ci et cela fonctionne (testé avec mon e-mail privé) :

```plaintext
raw: Encore un contenu de message ici.
title: Salut général Kenobi
archetype: private_message
target_recipients: j.doe@something.com

```

J’ai trouvé étrange que nous attendions un nom de groupe en back-end 😕

---

<div class="post-metadata">

### Author: ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)
#### Post date: [Octobre 2, 2023, 10:52 UTC](https://meta.discourse.org/t/send-pm-to-an-email-adress-from-a-plugin/280702/4 "2023-10-02T10:52:11Z")

</div>

TL;DR utilisez `target_emails` et non `target_recipients`

Notez que `target_recipients` est un paramètre de `PostsController`, pas un argument pour `PostCreator`.  
Ce contrôleur [détermine](https://github.com/discourse/discourse/blob/5ec7455c89d8bdb60b8cb46a6bb7b55ba8c1d706/app/controllers/posts_controller.rb#L894-L906) si les destinataires sont des utilisateurs, des groupes ou des adresses e-mail, puis le transmet finalement en tant que `target_emails` à `NewPostsManager` et il [se retrouve](https://github.com/discourse/discourse/blob/5a904949b277f5cb85be4b4a2d40b34fec8ee3da/lib/topic_creator.rb#L218-L220) dans `TopicCreator`.

---

<div class="post-metadata">

### Author: ![Luicid](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/luicid/32/306711_2.png) [@Luicid](https://meta.discourse.org/u/Luicid)
#### Post date: [Octobre 2, 2023, 1:00 UTC](https://meta.discourse.org/t/send-pm-to-an-email-adress-from-a-plugin/280702/5 "2023-10-02T13:00:33Z")

</div>

Merci ! C’était ça 🙂

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [Novembre 1, 2023, 1:00 UTC](https://meta.discourse.org/t/send-pm-to-an-email-adress-from-a-plugin/280702/6 "2023-11-01T13:00:40Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
