4 votes

Comment capturer l'URL du message de mail.app qui restera persistante lorsque le message est déplacé?

Donc mail.app a ce merveilleux message:// schéma URL, qui fonctionne très bien, jusqu'à ce que le message soit déplacé. Ensuite, les liens créés fonctionnent parfois - et parfois non. Je ne peux pas comprendre la différence. Donc ma question est double:

  1. Y a-t-il un moyen d'accéder aux messages via une URL même s'ils ont été déplacés?
  2. Si non, comment puis-je déplacer un message et ensuite obtenir son ID de message?

Mon script actuel est

tell application "Mail"
    set theSelectedMessages to selection
    set the selected_message to item 1 of the theSelectedMessages
    set message_id to the message id of the selected_message
    set message_subject to the subject of the selected_message
end tell
set myPrompt to display dialog "Créer une nouvelle tâche dans BusyCal" hard default answer message_subject
set response to the text returned of myPrompt
set quick_entry to encode(response & " " & mois de (date actuelle) & jour de (date actuelle) & "!!!" & " >") -- voir le gestionnaire d'encodage ci-dessous
tell application "BusyCal"
    activer
    ouvrir l'emplacement "busycalevent://new/-" & quick_entry
end tell
tell application "Mail"
    déplacer le message sélectionné dans la boîte aux lettres "Calendrier" de la boîte aux lettres "A faire" du compte "Calion"
end tell
-- gestionnaire d'encodage
sur l'encodage (msg)
    définir le texte sur faire shell script "/usr/bin/python -c 'import sys, urllib; print urllib.quote(sys.argv[1])' " & formule citée de msg
    définir les délimiteurs d'éléments de texte d'AppleScript sur "/"
    définir les éléments de texte deText sur les éléments de texte de leText
    définir les délimiteurs d'éléments de texte d'AppleScript sur "%2F"
    définir le texte sur les éléments de texte deText en tant que chaîne
    définir les délimiteurs d'éléments de texte d'AppleScript sur {""}
    renvoyer le texte
end encode

5voto

jaume Points 13186

Réponse courte

message: Les URL sont persistantes, mais Mail doit être redémarré pour mettre à jour sa base de données d'ID de message et résoudre correctement les URL.

Vous devrez redémarrer Mail avant d'utiliser BusyCal. Ou bien, vous pourriez redémarrer Mail dans votre script.


Réponse longue

Après quelques tests, j'ai remarqué que :

  • Les ID de message ne changent pas lorsqu'un message est déplacé:

    L'ID de message de ce mail de test situé dans la boîte de réception :

    description de l'image

    ne change pas après l'avoir déplacé dans la boîte aux lettres _People :

    description de l'image

  • Les ID de message fonctionnent après le redémarrage de Mail:

    Après avoir déplacé le message, l'URL message:%3CCA+pHXZSgP12HvSg2sQ9J3ochK2K8xOTk_wEoTf+6WmMcYGYxnw@mail.gmail.com%3E affiche un message vide car Mail cherche le message dans la boîte de réception (appuyez sur Commande et cliquez sur l'icône de l'enveloppe dans la barre de fenêtre pour afficher le chemin vers le message vide) :

    description de l'image

    Après avoir redémarré Mail, le message est trouvé avec succès :

    description de l'image

(Testé sur OS X Mavericks 10.10.4.)

Pour vos questions :

Y a-t-il un moyen d'accéder aux messages via une URL même s'ils ont été déplacés ?

Oui, redémarrez Mail pour reconstruire sa base de données d'ID de message interne. Vous pourrez accéder à tous les messages déplacés dans leurs nouvelles boîtes aux lettres.

Je comprends que c'est ennuyeux, mais il semble que ce soit le seul contournement possible.

Sinon, comment déplacer un message et obtenir son ID de message ?

Ce n'est pas nécessaire car les IDs de message ne changent pas.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X