fr.gif, 1 kB    en.gif, 1 kB

Mrs/fr

Dernière modification de cette page le 5 septembre 2008 à 14:29.

Un article de Milimail.

Sommaire

Documentation Utilisateur - Message Remote Services

Message Remote Services (MRS) est une extension pour Thunderbird 2.x qui expose des services distants d'envoi de message à des processus externes Une API Java est aussi proposée.

Par conséquent, un programme Java peut instrumentaliser le logiciel Thunderbird lancé sur le même poste.

MRS permet :

  • Envoyer des Mails.
  • Lister et recevoir les mails reçus.


AVERTISSEMENTS :

  • L'extension est actuellement en version alpha, c'est-à-dire qu'elle est encore au stade de développement et qu'elle peut fonctionner de manière incorrecte.



Installation de l'extension

  1. Télécharger l'extension (mrs-linux-x86 ou mrs-win)
  2. Suivre la procédure d'installation d'une extension.
  3. Ensuite, relancer le client Thunderbird.

Installation of MRS

Configuration

Pour configurer, cliquer droit sur l'extension dans le menu des extensions

Configuration de MRS

  • Les services peuvent être démarrer au démarrage et stopper à l'arrêt deThunderbird.
  • Quand le mode est changé, Thunderbird doit être redémarré.

Utiliser l'API Java

l'extension Message Remote Services expose des services accessible par une autre application munie de l'API Java détaillée ci-dessous.

Télécharger la dernière version de l'API (mrs-JavaAPI_*.zip):

La MRS API est composé d'un fichier JAR (MessageRemoteServices.jar) à inclure dans l'application. La bibliothèque lib/commons-io-1.4.jar est nécessaire au bon fonctionnement de l'API. Elle doit dont être inclue dans le projet cible.

Initialisation de l'API création des services

import org.milimail.messageRemoteServiceAPI.init.*;
import org.milimail.messageRemoteServiceAPI.compose.*;
import org.milimail.messageRemoteServiceAPI.account.*;
 
public static void main(String[] args) {
  ServiceCreator serviceCreator = API.init();
  MessageComposeServiceProxy composeService = serviceCreator.createMessageComposeService();
  AccountServiceProxy accountService = serviceCreator.createAccountService();
}

Account Service

//Call to the running Thunderbird, Get all Accounts for the current profile
  List<Account> accounts = accountService.GetAllAccounts();
  for (Account account : accounts) {
    //Server Imap Name			
    String serverName = account.getServerHostName();
    //Account Id
    String key = account.getKey();
    System.out.println(serverName + " " + key);
  }


Compose Service

Envoyer un message simple à un destinaire

ServiceCreator serviceCreator = API.init();
MessageComposeServiceProxy composeService = serviceCreator.createMessageComposeService();
AccountServiceProxy accountService = serviceCreator.createAccountService();
//Simple implementation of MessageSendListener interface which print the Send status
MessageSendListener messageListener = serviceCreator
				.createMessageSendListener(new MessageSendListenerServantConsole());
 
//Take the second Thunderbird's account for the current profile
Account account = accountService.GetAllAccounts().get(1);
 
//Create the message to send
Message message = new Message();
message.setSubject("Subject from API");
message.setBody("body from API");
String[] to = { "user2@test.milimail.org" };
message.setTo(to);
 
//Call to Thunderbird, Callback to messageListener (print status to console)
composeService.sendMessage(account, message, messageListener);
  • Crypt message
Security security = new Security();
security.setCrypted(true);
message.setSecurity(security);
  • Sign message
Security security = new Security();
security.setSigned(true);
message.setSecurity(security);
  • Header
List<Header> headers = new ArrayList<Header>();
Header header0 = new Header();
header0.setKey("X-MRS-TEST-1");
header0.setValue("X-MRS-VALUE-1");
message.setHeaders(headers);
  • MDN Read receipt
Notification notification = new Notification();
notification.setMDNReadRequested(true);
message.setNotification(notification);
  • DSN Delivery receipt
//Only with milimail (thunderbird 2.x patched)
Notification notification = new Notification();
notification.setDSNRequested(true);
DSNType type = new DSNType();
//RET=FULL sinon RET=HDRS
type.setReturnFullHDRRequested(true);
 
//Vous pouvez mixer ces trois options
type.setOnSuccessRequested(true);
type.setOnDelayRequested(true);
type.setOnFailureRequested(true);
 
notification.setDsnType(type);
 
message.setNotification(notification);
//Seulement avec milimail ou thunderbird 2.x patché
Notification notification = new Notification();
notification.setDSNRequested(true);
DSNType type = new DSNType();
//RET=FULL sinon RET=HDRS
type.setReturnFullHDRRequested(false);
 
//NOTIFY=NEVER
type.setNeverRequested(true);
 
notification.setDsnType(type);
 
message.setNotification(notification);
  • Attachments
List<Attachment> attachments = new ArrayList<Attachment>();
Attachment attachment0 = new Attachment();
attachment0 = new Attachment();
attachment0.setDirPath("/tmp/res/");
attachment0.setFileName("attachment1.txt");
attachment0.setMimeType("text/plain");
attachments.add(attachment0);
message.setAttachments(attachments);

Reference: English – Translations:  Français  •