# Divers

Quels sont les autres ressources disponibles avec Mail RP ?

# Envoyer un mail à la soumission d'un Google Form

<p class="callout warning"><u>****Avant propos :****</u><span style="white-space:pre-wrap;"> Dans ce tutoriel, nous allons vous montrer comment faire à partir d'un Google form pour envoyer un fichier pdf par mail via le système Mail RP. En fonction de vos besoins, vous pourrez réaliser uniquement les étapes qui permettent de répondre à votre besoin.</span></p>

### 1 - Créer votre Google Form

La première étape consiste à créer votre Google Form. Pour cette démonstration, nous allons partir sur la réalisation d'un compte rendu d'intervention que l'on va envoyer à notre client.

[![image.png](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/scaled-1680-/cJOimage.png)](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/cJOimage.png)

[![image.png](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/scaled-1680-/fdsimage.png)](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/fdsimage.png)

[![image.png](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/scaled-1680-/ufdimage.png)](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/ufdimage.png)

Une fois votre formulaire créé, vous devez activer l'exportation des données vers un Google Sheet :

[![image.png](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/scaled-1680-/LVrimage.png)](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/LVrimage.png)

[![image.png](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/scaled-1680-/QC7image.png)](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/QC7image.png)

[![image.png](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/scaled-1680-/zByimage.png)](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/zByimage.png)

### 2 - Créer un template (GDoc)

Maintenant que le Google Form est créé, nous allons créer un template. Ce template réalisé sur Google Doc sera le modèle du rapport qui sera envoyé au client.

[![image.png](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/scaled-1680-/BBVimage.png)](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/BBVimage.png)

[![image.png](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/scaled-1680-/9Aqimage.png)](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/9Aqimage.png)

<span style="white-space:pre-wrap;">Dans le modèle, on retrouve plusieurs balises </span>`<span class="editor-theme-code">{{name}}</span>`. Ces balises vont nous permettre d'insérer des informations en les remplaçant par du contenu.

<p class="callout info"><span style="white-space:pre-wrap;">Par exemple, </span>****{{title}}****<span style="white-space:pre-wrap;"> deviendra : </span>****Audit de sécurité !****</p>

La nomenclature des balises est sans importance. Cependant, nous vous conseillons :

- <span style="white-space:pre-wrap;">d'essayer de mettre le nom de vos variables en : </span>**camelCase**<span style="white-space:pre-wrap;"> / </span>**PascalCase**
- de ne pas mettre d'espace dans le nom
- de mettre un nom clair et facile à comprendre
- <span style="white-space:pre-wrap;">d'éviter de mettre des séparateurs dans le nom, comme : </span>`<span class="editor-theme-code">.</span>`<span style="white-space:pre-wrap;">, </span>`<span class="editor-theme-code">-</span>`<span style="white-space:pre-wrap;">, </span>`<span class="editor-theme-code">/</span>`, etc.

### 3 - Créer un répertoire de stockage

Lorsque nous allons générer les PDF, il faudra les stocker. C'est pourquoi nous allons créer un répertoire de stockage au sein de notre projet.

[![image.png](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/scaled-1680-/MAJimage.png)](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/MAJimage.png)

[![image.png](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/scaled-1680-/Xxzimage.png)](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/Xxzimage.png)

### 4 - Créer le script d'envoi

<p class="callout info"><span style="white-space:pre-wrap;">Plus d'informations sur Apps Script : </span>[https://developers.google.com/apps-script/overview](https://developers.google.com/apps-script/overview?hl=fr)</p>

Maintenant que nous avons tous nos éléments prêts, nous allons créer le script permettant d'envoyer les réponses de notre formulaire.

#### <u>Étape 1 :</u><span style="white-space:pre-wrap;"> Initialisation du script</span>

Sur le Google Sheet, nous allons ajouter un script. Pour cela, dans la barre extensions, sélectionnez Apps Script :

[![image.png](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/scaled-1680-/9Sqimage.png)](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/9Sqimage.png)

Voici à quoi ressemble notre projet par défaut :

[![image.png](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/scaled-1680-/gr3image.png)](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/gr3image.png)

<span style="white-space:pre-wrap;">La première chose que l'on va faire c'est donner un nouveau nom à notre fonction et lui passer un paramètre </span>`<span class="editor-theme-code">element</span>`<span style="white-space:pre-wrap;"> :</span>

```js
function sendFormToMailRP(element) {
  
}
```

#### <u>Étape 2 :</u><span style="white-space:pre-wrap;"> Ajouter un déclencheur pour l'envoi d'un formulaire</span>

Pour que notre script fonctionne, on doit être en mesure de détecter l'ajout de donnée dans le Google Sheet. On va créer un déclencheur :

[![image.png](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/scaled-1680-/Yymimage.png)](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/Yymimage.png)

<span style="white-space:pre-wrap;">Voici les paramètres de notre déclencheur, attention à bien définir comme type d'évènement </span>****Lors de l'envoi du formulaire****<span style="white-space:pre-wrap;"> :</span>

[![image.png](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/scaled-1680-/Phoimage.png)](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/Phoimage.png)

#### <u>Étape 3 :</u><span style="white-space:pre-wrap;"> Ajouter les dépendances nécessaires au fonctionnement du projet</span>

<span style="white-space:pre-wrap;">Dans les paramètres du projet, afficher le manifeste </span>`<span class="editor-theme-code">appscript.json</span>`<span style="white-space:pre-wrap;"> :</span>

[![image.png](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/scaled-1680-/BKuimage.png)](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/BKuimage.png)

<span style="white-space:pre-wrap;">Retourner dans Éditeur, puis dans </span>`<span class="editor-theme-code">appsscript.json</span>`<span style="white-space:pre-wrap;"> :</span>

[![image.png](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/scaled-1680-/6hfimage.png)](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/6hfimage.png)

Remplacer le contenu du fichier par :

```json
{
  "timeZone": "Europe/Paris",
  "dependencies": {
  },
  "oauthScopes": [
    "https://www.googleapis.com/auth/drive",
    "https://www.googleapis.com/auth/script.external_request",
    "https://www.googleapis.com/auth/documents"
  ],
  "exceptionLogging": "STACKDRIVER",
  "runtimeVersion": "V8"
}
```

#### <u>Étape 4 :</u><span style="white-space:pre-wrap;"> Récupérer les informations transmises par le formulaire</span>

<span style="white-space:pre-wrap;">Pour récupérer les informations envoyées par le formulaire, nous allons utiliser la variable </span>`<span class="editor-theme-code">element.values</span>`. Cette variable est un tableau dont la structure des résultats est celle présente dans notre Google Sheet. On aura donc :

- ****element.values\[0\]****<span style="white-space:pre-wrap;"> : L'information Horodateur (quand a été envoyé le formulaire)</span>
- ****element.values\[1\]****<span style="white-space:pre-wrap;"> : Prénom et Nom du prestataire</span>
- ****element.values\[2\]****<span style="white-space:pre-wrap;"> : Adresse mail du prestataire</span>
- ****element.values\[6\]****<span style="white-space:pre-wrap;"> : Titre de notre rapport</span>
- ****element.values\[7\]****<span style="white-space:pre-wrap;"> : Contenu de notre compte rendu</span>

La syntaxe dans notre script est donc :

```js
function sendFormToMailRP(element) {
  var timestamp = element.values[0];
  ...
  var content = element.values[7];
}
```

#### <u>Étape 5 :</u><span style="white-space:pre-wrap;"> Récupérer un identifiant</span>

Pendant toute la durée de notre script, nous aurons besoin de récupérer des identifiants (template, dossier,etc.). Pour récupérer l'identifiant d'un élement, il suffit d'aller récupérer l'information dans l'URL de celui-ci.

<p class="callout info"><span style="white-space:pre-wrap;">Par exemple, si l'url de notre template est : </span>`<span class="editor-theme-code">https://docs.google.com/document/d/ugIXX7Nv02TyBv3cbASf/edit</span>`</p>

<p class="callout success"><span style="white-space:pre-wrap;">Alors l'identifiant de notre template sera : </span>`<span class="editor-theme-code">ugIXX7Nv02TyBv3cbASf</span>`.</p>

#### <u>Étape 6 :</u><span style="white-space:pre-wrap;"> Remplissage de notre template</span>

Nous allons récupérer l'id de notre template et de notre dossier de stockage. Ensuite, nous allons créer une copie de notre template dans le dossier de stockage et nous injecterons les résultats du formulaire dans ce template copié.

```js
// Récupération du template par son ID
var template = DriveApp.getFileById("ugIXX7Nv02TyBv3cbASf");

// Récupération du répertoire de stockage par son id
var storage = DriveApp.getFolderById("3hK1OrcdRliKsV2R2HlN");

// Création d'un nouveau document dans le répertoire de stockage
var fileName = "Rapport d'intervention | " + timestamp + " | " + clientName; // Choisissez le nom de fichier que vous voulez mettre
var newTemplate = template.makeCopy(fileName, storage);

// Ouverture du document
var document = DocumentApp.openById(newTemplate.getId());

// Injection des informations dans le template
var body = document.getBody();
body.replaceText("{{title}}", title);
...
body.replaceText("{{content}}", content);

// Sauvegarde des modifications
document.saveAndClose();
```

<p class="callout warning"><span style="white-space:pre-wrap;">Veuillez noter que la méthode </span>`<span class="editor-theme-code">body.replaceText("{{title}}", title);</span>`<span style="white-space:pre-wrap;"> fait appel dans un premier temps à la balise définie dans votre template et dans un second temps au nom de la variable qui contient l'information récupéré en début de programme.</span></p>

#### <u>Étape 7 :</u><span style="white-space:pre-wrap;"> Export du document en PDF</span>

Maintenant que notre template est complété, nous allons le transformer en PDF :

```js
// Export en PDF
var pdfBlob = document.getAs('application/pdf');
pdfBlob.setName(fileName + '.pdf');

var pdf = DriveApp.createFile(pdfBlob);
pdf.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.VIEW);
pdf = pdf.makeCopy(fileName, storage);

// Suppression du fichier doc
DriveApp.getFileById(document.getId()).setTrashed(true);
```

<p class="callout info"><span style="white-space:pre-wrap;">Plus d'information sur les accès : </span>[Accès Google Script](https://developers.google.com/apps-script/reference/drive/access?hl=fr)</p>

<p class="callout info"><span style="white-space:pre-wrap;">Plus d'information sur les permissions : </span>[Permission Google Script](https://developers.google.com/apps-script/reference/drive/permission?hl=fr)</p>

#### <u>Étape 8 :</u><span style="white-space:pre-wrap;"> Envoyer le PDF par mail</span>

On y est presque, notre PDF est maintenant dans notre espace de stockage. Il ne nous reste plus qu'à l'envoyer à notre destinataire.

<p class="callout info">Pour cela, nous allons avoir besoin d'une clé d'accès à l'API Mail RP ([Fonctionnement de l'API](https://wiki.xelyos.fr/books/api-mail-rp)).</p>

<span style="white-space:pre-wrap;">Dans le script, remplacez </span>`<span class="editor-theme-code">api-key</span>`, par votre clé API :

```js
// Envoyer un mail avec Mail RP
UrlFetchApp.fetch('https://mail-rp.com/api/v1/api-key/mail/send', {
  'method': 'post',
  'contentType': 'application/json',
  'payload' : JSON.stringify({
    "from" : providerEmail,
    "to" : clientEmail,
    "subject": "Rapport d'intervention",
    "content": "<p>Bonjour " + clientName + ",</p><br>Vous trouverez ci-joint le rapport d'intervention du ...",
    "openConfirmation": false,
    "attachments": [
      {
        "name": pdf.getName() + '.pdf',
        "url": pdf.getDownloadUrl() // ou pdf.getUrl()
      }
    ]
  })
});
```

<table id="bkmrk-champs-description-e"><colgroup><col></col><col></col><col></col></colgroup><tbody><tr><th>Champs

</th><th>Description

</th><th>Exemple

</th></tr><tr><td>****from****

</td><td>Email de l'expéditeur

</td><td><span style="white-space:pre-wrap;">Ici notre prestataire : </span>

`<span class="editor-theme-code">providerEmail</span>`

</td></tr><tr><td>****to****

</td><td>Email du destinataire

</td><td><span style="white-space:pre-wrap;">Ici le client : </span>

`<span class="editor-theme-code">clientEmail</span>`

</td></tr><tr><td>****subject****

</td><td>Sujet du mail

</td><td><span style="white-space:pre-wrap;">Ex : </span>

`<span class="editor-theme-code">Rapport d'intervention</span>`

</td></tr><tr><td>****content****

</td><td>Contenu du mail

</td><td>Pour un meilleur résultat, le contenu du mail doit être écrit avec des balises HTML

</td></tr><tr><td>****openConfirmation****

</td><td>Recevoir une confirmation d'ouverture ?

</td><td>true | false

</td></tr><tr><td>****attachements****

</td><td>Notre PDF attaché en pièce joint

</td><td><span style="white-space:pre-wrap;">Consulter la </span>

[documentation de l'API](https://mail-rp.com/api/doc)

<span style="white-space:pre-wrap;"> pour plus d'information</span>

</td></tr></tbody></table>

#### <u>Étape 9 :</u><span style="white-space:pre-wrap;"> Vérification des permissions</span>

<p class="callout info"><span style="white-space:pre-wrap;">Une fois que vous avez terminé votre script. Nous vous conseillons d'appuyer au moins une fois sur </span>****Exécutee****.</p>

Google va alors vous demander la permission d'accéder à certains éléments de votre compte, comme dans notre cas l'accès aux répertoires et documents.

<p class="callout warning">Lors de cette étape, assurez-vous d'être l'auteur du script et que personne d'autre n'y à accès afin de limiter les risques.</p>

[![image.png](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/scaled-1680-/Qs2image.png)](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/Qs2image.png)

<table id="bkmrk--18"><colgroup><col style="width:240px;"></col><col style="width:240px;"></col><col style="width:434px;"></col></colgroup><tbody><tr><td>[![image.png](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/scaled-1680-/un3image.png)](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/un3image.png)

</td><td>[![image.png](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/scaled-1680-/lLVimage.png)](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/lLVimage.png)

</td><td>[![image.png](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/scaled-1680-/jJZimage.png)](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/jJZimage.png)

</td></tr></tbody></table>

### 5 - Script Complet

```js
function sendFormToMailRP(element) {
  var timestamp = element[0];
  ...
  var content = element[7];
  
  // Récupération du template par son ID
  var template = DriveApp.getFileById("ugIXX7Nv02TyBv3cbASf");

  // Récupération du répertoire de stockage par son id
  var storage = DriveApp.getFolderById("3hK1OrcdRliKsV2R2HlN");

  // Création d'un nouveau document dans le répertoire de stockage
  var fileName = "Rapport d'intervention | " + timestamp + " | " + clientName; // Choisissez le nom de fichier que vous voulez mettre
  var newTemplate = template.makeCopy(fileName, storage);

  // Ouverture du document
  var document = DocumentApp.openById(newTemplate.getId());

  // Injection des informations dans le template
  var body = document.getBody();
  body.replaceText("{{title}}", title);
  ...
  body.replaceText("{{content}}", content);

  // Sauvegarde des modifications
  document.saveAndClose();
  
  // Export en PDF
  var pdfBlob = document.getAs('application/pdf');
  pdfBlob.setName(fileName + '.pdf');

  var pdf = DriveApp.createFile(pdfBlob);
  pdf.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.VIEW);
  pdf = pdf.makeCopy(fileName, storage);

  // Suppression du fichier doc
  DriveApp.getFileById(document.getId()).setTrashed(true);

  // Envoyer un mail avec Mail RP
  UrlFetchApp.fetch('https://mail-rp.com/api/v1/api-key/mail/send', {
    'method': 'post',
    'contentType': 'application/json',
    'payload' : JSON.stringify({
      "from" : providerEmail,
      "to" : clientEmail,
      "subject": "Rapport d'intervention",
      "content": "<p>Bonjour " + clientName + ",</p><br>Vous trouverez ci-joint le rapport d'intervention du ...",
      "openConfirmation": false,
      "attachments": [
        {
          "name": pdf.getName() + '.pdf',
          "url": pdf.getDownloadUrl() // ou pdf.getUrl()
        }
      ]
    })
  });
}
```

# Ressources FiveM

# Utilisez la tablette XelBob-tab

****XelBob-tab****<span style="white-space: pre-wrap;"> est le produit de l'association entre </span>[<span style="color: rgb(242, 169, 34);">Xelyos</span>](https://xelyos.fr/discord)<span style="color: rgb(242, 169, 34); white-space: pre-wrap;"> </span><span style="white-space: pre-wrap;">et </span>[<span style="color: rgb(45, 194, 107);">Bob's&amp;Co</span>](https://discord.gg/X36mxQTk5b). Cette tablette utilisable sur Fivem vous permet d'afficher le contenu de sites internet directement sur votre serveur.  
[Afficher plus d'info](https://wiki.xelyos.fr/books/xelbob-tab)

[![image.png](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/scaled-1680-/JoQimage.png)](https://xelyos-wiki.s3.amazonaws.com/uploads/images/gallery/2025-04/JoQimage.png)

# Ressources GTA V - Installation

##### <span style="color: rgb(224, 62, 45);">Cette ressources n'est plus fonctionnelle pour le moment !</span>

## Installer la ressource

**Pour récupérer la clé vous permettant d'utiliser l'api de Mail RP, rendez vous sur la page :** [**Récupérer sa clé API**](https://wiki.xelyos.fr/books/api-mail-rp/page/presentation-de-lapi)

Voici deux méthodes pour installer la ressources sur votre serveur :

<u>****Avec git :****</u>

<span style="white-space: pre-wrap;">Rendez vous dans le dossier </span>`<span class="editor-theme-code">resources</span>`<span style="white-space: pre-wrap;"> de votre serveur, et utiliser la commande suivante :</span>

```ssh
git clone https://github.com/XelyosTeam/fivem-resources.git [xelyos]
```

<span style="white-space: pre-wrap;">Un dossier va allors de créer sous le nom </span>****\[xelyos\]****<span style="white-space: pre-wrap;">, vérifiez bien que dans ce répertoire vous trouverez le répertoire </span>****mailrp****.

<u>****Sans git :****</u>

<span style="white-space: pre-wrap;">Rendez vous sur le git : </span>[****Last releases Git Xelyos Resources FiveM****](https://github.com/XelyosTeam/fivem-resources/releases/latest/)<span style="white-space: pre-wrap;"> et télécharger le fichier </span>`<span class="editor-theme-code">.zip</span>`<span style="white-space: pre-wrap;">. Déplacez le fichier zip téléchargé dans votre répertoire </span>`<span class="editor-theme-code">resources</span>`<span style="white-space: pre-wrap;">, et faîtes </span>**extraire-ici**<span style="white-space: pre-wrap;">, renommer le nouveau fichier installer en </span>****\[xelyos\]****

---

## Activer la ressource

<u>****Lier à l'API :****</u>

<span style="white-space: pre-wrap;">Pour lié votre serveur FiveM avec l'api de Mail RP, vous devez vous rendre dans le fichier </span>`<span class="editor-theme-code">resources/[xelyos]/mailrp/server.lua</span>`<span style="white-space: pre-wrap;">, au niveau de la ligne 6, remplacez </span>****apiToken****<span style="white-space: pre-wrap;"> par votre clé.</span>

<u>****Activer la ressource :****</u>

<span style="white-space: pre-wrap;">Pour activer la ressource sur votre serveur, ajouter dans votre </span>`<span class="editor-theme-code">server.cfg</span>`<span style="white-space: pre-wrap;"> les lignes suivantes :</span>

```cfg
# Xelyos solutions
ensure mailrp
```

**Si vous utilisez déjà des ressources Xelyos, vous n'avez qu'à ajouter la ligne à la suite des autres.**

---

## Utiliser la ressource

<u>****La fonction callback :****</u>

```lua
function requestAction(statusCode, resultData)
  -- Action qui suit la requête
end
```

<span style="white-space: pre-wrap;">Lorsque vous allez faire appel à l'API, un résultat est envoyé en fonction de la requête que vous utilisez. Pour exploiter cette réponse, vous devrez utilisez une fonction </span>**callback**<span style="white-space: pre-wrap;">, dans cette fonction écrivez les actions qui devront suivre la requête. Vous pouvez renommer la fonction </span>**callback**<span style="white-space: pre-wrap;"> comme vous le voulez.</span>

<table id="bkmrk-variable-d%C3%A9finition-"><colgroup><col></col><col></col></colgroup><tbody><tr><th>Variable

</th><th>Définition

</th></tr><tr><td><span style="white-space: pre-wrap;">statusCode </span>

****(obligatoire)****

</td><td>Résultat du status de la requête (200 : réussite | 403 : échec)

</td></tr><tr><td><span style="white-space: pre-wrap;">resultData </span>

****(obligatoire)****

</td><td>Données retournées au format JSON

</td></tr></tbody></table>

<u>****Appelez le code depuis un fichier serveur :****</u>

Pour utiliser l'api depuis un fichier serveur, vous devez utiliser la structure suivante :

```lua
function requestAction(statusCode, ResultData)
  ...
end

TriggerEvent('xelyos:MailRP', function(mailRP)
    mailRP:methode(requestAction)
end)
```

[Afficher la liste des méthodes](https://wiki.xelyos.fr/books/api-mail-rp/page/ressources-gta-v-methodes)

**Vous trouverez la liste des méthodes ci-dessous !**

<u>****Appelez le code depuis un fichier client :****</u>

Pour utiliser l'api depuis un fichier serveur, vous devez utiliser la structure suivante :

```lua
function requestAction(statusCode, ResultData)
  ...
end

TriggerServerEvent('xelyos:MailRP', function(mailRP)
    mailRP:methode(requestAction)
end)
```

[Afficher la liste des méthodes](https://wiki.xelyos.fr/books/api-mail-rp/page/ressources-gta-v-methodes)

---

## Exemple d'utilisation - Récupérer le nom de son serveur

```lua
function showServerInfo(statusCode, resultData)
    print("Status", statusCode) -- Status de la requête
    print('Result', resultData) -- Informations retournées
  	print('Server name', resultData.name) -- Récupération du nom du serveur
    print('Server count api request', resultData.api.count) -- Récupérer le nombre de requêtes effectuées au total pour le serveur
end

AddEventHandler('onResourceStart', function(resourceName)
    if GetCurrentResourceName() == resourceName then
      	-- Lors de l'initialisation de la ressource
        TriggerEvent('xelyos:MailRP', function(mailRP)
            mailRP:getServer(showServerInfo)
        end)
    end
end)
```

# Ressources GTA V - Méthodes

##### <span style="color: rgb(224, 62, 45);">Cette ressources n'est plus fonctionnelle pour le moment !</span>

<span style="white-space: pre-wrap;">Chaque méthode possède dans ses paramètres une variable appelée </span>`<span class="editor-theme-code">callBack</span>`, cette variable correspond à la fonction que vous utilisez pour le traitement des données renvoyées par l'API. Chaque variable utilisée dans les différentes méthodes sont expliquées sur le document API.

---

## getServer()

<u>****Utilité :****</u><span style="white-space: pre-wrap;"> Récupérer les informations sur son serveur</span>

<u>****Doc API :****</u><span style="white-space: pre-wrap;"> </span>[Gestion du serveur - Informations générales](https://wiki.xelyos.fr/books/api-mail-rp/page/gestion-du-serveur)

<u>****Appel :****</u>

```lua
mailRP:getServer(callBack)
```

---

## findSubdomains()

<u>****Utilisé :****</u><span style="white-space: pre-wrap;"> Récupérer la liste des sous domaines de votre serveur</span>

<u>****Doc API :****</u><span style="white-space: pre-wrap;"> </span>[Gestion des sous domaines - Liste des sous domaines](https://wiki.xelyos.fr/link/170#bkmrk-liste-des-sous-domai)

<u>****Appel :****</u>

```lua
mailRP:findSubdomains(callBack)
```

---

## findSubdomain(name)

<u>****Utilisé :****</u><span style="white-space: pre-wrap;"> Récupérer les informations d'un sous domaine avec ses adresses mails</span>

<u>****Doc API :****</u><span style="white-space: pre-wrap;"> </span>[Gestion des sous domaines - Détails d'un sous domaine](https://wiki.xelyos.fr/link/170#bkmrk-d%C3%A9tails-d%27un-sous-do)

<u>****Appel :****</u>

```lua
mailRP:findSubdomain(callBack, name)
```

---

## addSubdomain(name, public, manager, carnet)

<u>****Utilisé :****</u><span style="white-space: pre-wrap;"> Créer un nouveau sous domaine</span>

<u>****Doc API :****</u><span style="white-space: pre-wrap;"> </span>[Gestion des sous domaines - Ajouter un sous domaine](https://wiki.xelyos.fr/link/170#bkmrk-ajouter-un-sous-doma)

<u>****Appel :****</u>

```lua
mailRP:addSubdomain(callBack, name, public, manager, carnet)
```

---

## findAddress(email)

<u>****Utilisé :****</u><span style="white-space: pre-wrap;"> Récupérer les informations d'une adresse mail</span>

<u>****Doc API :****</u><span style="white-space: pre-wrap;"> </span>[Gestion des adresses - Récupérer une adresse mail](https://wiki.xelyos.fr/link/171#bkmrk-r%C3%A9cup%C3%A9rer-une-adress)

<u>****Appel :****</u>

```lua
mailRP:findAddress(callBack, email)
```

---

## addAddress(name, firstname, email, password)

<u>****Utilisé :****</u><span style="white-space: pre-wrap;"> Créer une adresse mail</span>

<u>****Doc API :****</u><span style="white-space: pre-wrap;"> </span>[Gestion des adresses - Créer une adresse mail](https://wiki.xelyos.fr/link/171#bkmrk-cr%C3%A9er-une-adresse-ma)

<u>****Appel :****</u>

```lua
mailRP:addAddress(callBack, name, firstname, email, password)
```

---

## sendEmail(from, to, subject, content, confirmOpened, attachments)

<u>****Utilisé :****</u><span style="white-space: pre-wrap;"> Envoyer un mail depuis une adresses à un ou plusieurs destinataires</span>

<u>****Doc API :****</u><span style="white-space: pre-wrap;"> </span>[Gestion des mails - Envoyer un mail](https://wiki.xelyos.fr/link/172#bkmrk-envoyer-un-mail)

<u>****Appel :****</u>

```lua
mailRP:sendEmail(callBack, from, to, subject, content, confirmOpened, attachments)
```