Bouton action qui ouvre un mail

Bonjour,

Merci de prendre l’habitude de préciser votre version quand vous postez un message.

Il y a 2 méthodes suivant le besoin :

  1. Si vous voulez utiliser une Alerte configurée et donc envoyer l’email depuis le serveur en back :
  • il faut créer une Action de type back avec un(des) attribut(s) de confirmation de type Email (ou un champs texte long avec des emails séparés par des virgules)
  • coder la méthode en back pour instancier l’Alerte + ajouter les destinataires reçus + Envoyer

Exemple

En V4 :

public String myMethod(Map<String,String> params) {
  Alert a = getAlert("MyAlert", Alert.TYPE_INFO);
  if (a!=null) {
    String emails = params.get("myFieldEmails");
    if (Tool.isEmpty(emails))
      return "MY_ERROR_EMPTY_EMAILS";
    for (String email : emails.split(","))
       a.addRecipient(email.trim(), Alert.RECIP_TO);
    a.send(this);
  }
  return null;
}

En V5 : la syntaxe V4 est compatible mais le passage de paramètre se fera directement via les Fields de l’Action, pour permettre de véhiculer autre chose que des Strings (des documents)

public String myMethod(Action action) {
  Alert a = getAlert("MyAlert", Alert.TYPE_INFO);
  if (action!=null && a!=null) {
    Grant g = getGrant();
    String emails = action.getConfirmField(g.getLang(), "myFieldEmails").getValue();
    if (Tool.isEmpty(emails)) 
      return "MY_ERROR_EMPTY_EMAILS";
    for (String email : emails.split(","))
       a.addRecipient(email.trim(), Alert.RECIP_TO);
    a.send(this);
  }
  return null;
}
  1. Si l’email est assez basic (sujet et contenu textuel sans champ de fusion) et doit être envoyé via la messagerie de l’utilisateur (ex gmail, outlook…), il faut créer une Action de type front, avec un simple “mailto:” dans l’URL standard qui appellera l’agent de mailing du navigateur.