Adresses électronique¶
Adresses électronique¶
L'API Web propose une ressource pour l'envoi de courriers électroniques. Pour que des courriels puissent être envoyés, il faut que la configuration SMTP soit correctement établie et qu'une adresse électronique de notification du système soit définie pour l'instance DHIS2. Vous pouvez définir les paramètres SMTP à partir de l'écran des paramètres de messagerie et l'adresse électronique de notification du système à partir de l'écran des paramètres généraux de DHIS2.
/api/33/email
Notification du système¶
La ressource notification vous permet d'envoyer des notifications par courriel au système avec un sujet et un texte donnés en JSON ou XML. Le courriel sera envoyé à l'adresse électronique de notification définie dans les paramètres généraux du système DHIS2 :
{
"subject": "Integrity check summary",
"text": "All checks ran successfully"
}
Vous pouvez envoyer une notification par courrier électronique au système en envoyant un message à la ressource notification comme suit :
curl -d @email.json "localhost/api/33/email/notification" -X POST
-H "Content-Type:application/json" -u admin:district
E-mails sortants¶
Vous pouvez également envoyer une notification générale par courrier électronique en postant dans la ressource de notification comme indiqué ci-dessous. F_SEND_EMAIL ou ALL doit être présente dans le système pour pouvoir utiliser cette API. Le paramètre est facultatif. La chaîne "DHIS 2" sera envoyée comme sujet par défaut s'il n'est pas fourni dans l'url. L'url doit être encodée pour pouvoir utiliser cette API.
curl "localhost/api/33/email/notification?recipients=xyz%40abc.com&message=sample%20email&subject=Test%20Email"
-X POST -u admin:district
The previous example is convenient for short messages. However, since the message is passed as a query string, it can quickly hit the URL length limit of the server. For longer messages, it is better to send the data in the POST request body. The following example shows how to send an email with a longer message in the request body:
curl -u admin:district -X POST 'localhost/api/33/email/notification' \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'recipients=recipient1@example.com,recipient2@example.com' \
--data-urlencode 'subject=Important System Update' \
--data-urlencode 'message=Dear user, we are writing to inform you about an important system update that will take place this weekend. The system will be unavailable for a few hours. We apologize for any inconvenience this may cause. Please plan your work accordingly. Best regards, The DHIS2 Team.'
To send an email with an HTML body, you can simply provide the HTML content in the message parameter. The email client should interpret the HTML and render it accordingly. Note that the Content-Type header in the curl command should be application/x-www-form-urlencoded, as the data is sent as URL-encoded form data. The following example shows how to send an email with a simple HTML table:
curl -u admin:district -X POST 'localhost/api/33/email/notification' \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'recipients=recipient1@example.com,recipient2@example.com' \
--data-urlencode 'subject=System Maintenance Schedule' \
--data-urlencode 'message=<html><body><h2>System Maintenance</h2><p>Dear user,</p><p>We are writing to inform you about scheduled system maintenance. The following table shows the maintenance schedule for the upcoming week:</p><table border="1"><tr><th>Day</th><th>Time</th></tr><tr><td>Monday</td><td>10 PM - 11 PM</td></tr><tr><td>Wednesday</td><td>10 PM - 11 PM</td></tr></table><p>We apologize for any inconvenience this may cause. Please plan your work accordingly.</p><p>Best regards,<br>The DHIS2 Team</p></body></html>'
Message de test¶
Pour tester si la configuration SMTP est correcte en vous envoyant à vous-même un e-mail de test, vous pouvez interagir avec la ressource test. Pour envoyer des courriels de test, il faut que votre compte utilisateur DHIS2 soit associé à une adresse électronique valide. Vous pouvez envoyer un courriel de test comme suit :
curl "localhost/api/33/email/test" -X POST -H "Content-Type:application/json" -u admin:district