Note : les deux procédures ci-dessous ont été réalisées sous Mac OS X 10.4 (Tiger) avec Mail 2.1.

  • Explication du fonctionnement général de l’accusé de réception dans un courrier électronique.

La fonction d’accusé de réception dans un courrier électronique tient dans la gestion d’une en-tête de message qui est définie à l’envoi d’un mail et qui est traitée ou non à la réception de ce mail. Cette entête est : "Disposition-Notification-To". Au même titre que les autres en-tête qui compose en mail ("Retrun-Path" pour l’adresse de réponse ou "From" pour l’adresse de l’expéditeur), il suffit de rajouter cette en-tête à l’envoi et de la traiter à la réception.

Par défaut, Mail pour Mac OS X ne gère pas l’en-tête "Disposition-Notification-To". Mais avec un minimum de configuration et de scripts en AppleScript, il est possible d’intégrer les fonctions d’accusé de réception. Il suffit de lui indiquer que si un mail entrant contient une en-tête "Disposition-Notification-To", il faut extraire l’adresse de réponse pour envoyer un mail ; pour l’envoi de mail avec demande d’accusé de réception, il suffit de modifier le fichier des préférences de Mail pour lui indiquer de rajouter l’en-tête "Disposition-Notification-To" avec la bonne adresse de réponse.

Pour la gestion des courriers entrants demandant des accusés de réception, la fonction effectuée par Mail prépare un email qui se retrouve ouvert devant l’utilisateur et qui contient un message tout près indiquant que le Mail a bien été ouvert par le destinataire. Il suffit de cliquer sur Envoyer pour valider la fonction ou de supprimer le message si on ne veut pas répondre à la demande d’accusé de réception.

À savoir : il faudra que l’utilisateur active et désactive la demande d’accusé de réception manuellement. Cette activation/désactivation s’effectue sans avoir à relancer Mail.

  • Gestion des mails reçus demandant un accusé de réception

Ouvrez l’Editeur de scripts (/Applications/AppleScript/Editeur de scripts) et écrivez l'applescript suivant :

using terms from application "Mail"
	on perform mail action with messages selectedMsgs
		repeat with msg in selectedMsgs
			set theSubject to subject of msg
			set theSender to extract name from sender of msg
			set theAddress to extract address from sender of msg
			set theDate to date sent of msg
			tell application "Mail"
				set nowDate to current date
				set theBody to "Votre message" & return & return & "    Re: " & theSubject & return & "       Envoyé le: " & theDate & return & return & "a été reçu et lu le " & nowDate & ".  Merci." & return
				set newMessage to make new outgoing message with properties {subject:"Accusé de réception : " & theSubject, content:theBody & return & return}
				tell newMessage
					set visible to true
					make new to recipient at end of to recipients with properties {name:theSender, address:theAddress}
				end tell
			end tell
		end repeat
	end perform mail action with messages
end using terms from

Enregistrez ce script sous le nom AccuseReception dans /Applications/AppleScript/Example Scripts/Mail Scripts.

Pour activer la gestion des mails entrants avec demande d’accusé de réception, ouvrez les préférences de Mail et allez dans l’onglet Règles. Créez une nouvelle règle. Nommez-là "Accusé de Réception" dans le champ Description. Déroulez le premier menu déroulant de la règle qui est par défaut "De" et allez sur l’option tout en bas "Modifier la liste des en-têtes".

Dans la fenêtre qui apparait, cliquez alors sur le petit "+" pour ajouter "Disposition-Notification-To" dans la liste des en-têtes de message. Validez par OK. Déroulez de nouveau le menu "De" et choisissez la nouvelle en-tête "Disposition-Norification-To". Dans le champs à droite de "Contient", ajoutez simplement "@".

Il faut ensuite indiquer les opérations à réaliser si la règle est vérifiée. Pour cela, déroulez le menu "Déplacer le message" et choisissez "Exécuter AppleScript". Cliquez sur le bouton Choisir en allez chercher notre script (/Applications/AppleScript/Example Scripts/Mail Scripts/AccuseReception). Voilà, validez la nouvelle rêgle.

ATTENTION : à la validation de la nouvelle règle par le bouton OK, n’appliquez pas la nouvelle règle aux messages existants. Cela pourrait envoyer des accusés de réception à des anciens messages.

A la réception d'un courrier électronique qui demande un accusé de réception, un nouveau mail pré-établi s'ouvrira devant vous et il vous suffira de l'envoyer tel quel si vous voulez répondre à l'accusé de réception ou de le fermer sans le sauvegarder si vous voulez ignorer la demande.

  • Gestion des mails à envoyer avec demande d’accusé de réception.

Nous allons rajouter au courrier sortant l'en-tête "Disposition-Notification-To". Mais nous allons faire deux scriptes, l'un pour activer la demande d'accusé de réception, l'autre pour la désactiver, et nous allons aussi créer un témoin qui permettra de savoir si cette fonction est activée ou pas, à savoir un fichier sur le bureau qui changera de nom en fonction de l'activation ou de la désactivation.

Ouvrez l’Editeur de scripts (/Applications/AppleScript/Editeur de scripts) et écrivez le scripte suivant :

do shell script "defaults write com.apple.mail UserHeaders '{\"Disposition-Notification-To\" = \"votre_email@votre_fournisseur\"; }'"
tell application "Finder"
	activate
	set name of document file "AR désactivé.rtf" of folder "Desktop" of folder "votre_maison" of folder "Users" of disk "Macintosh HD" to "AR activé.rtf"
end tell

ATTENTION : Pensez à bien indiquez votre véritable adresse email dans la première ligne du script. De même, dans la ligne commençant pas "set name", pensez à changer "votre_maison" par le nom réel de votre répertoire racine personnel. Vérifiez aussi que votre disque dur qui contient ce répertoire s'appelle bien Macintosh HD ou changez son nom dans le script.

Enregistrez votre script sous le nom Activer l’accusé dans /Applications/AppleScript/Example Scripts/Mail Scripts.

Créez un nouveau script et entrez la ligne suivante :

do shell script "defaults delete com.apple.mail UserHeaders"
tell application "Finder"
	activate
	set name of document file "AR activé.rtf" of folder "Desktop" of folder "votre_maison" of folder "Users" of disk "Macintosh HD" to "AR désactivé.rtf"
end tell

Même précaution que pour le script précédent : pensez à modifier le nom de "votre_maison" et à vérifier le nom du disque dur qui contient ce répertoire.

Enregistrez votre script sous le nom Désactiver l’accusé dans /Applications/AppleScript/Example Scripts/Mail Scripts.

Créez un fichier avec TextEdit(/Application/TextEdit) où vous écrirez ce que vous voulez ("indique l’état de la fonction d’accusé de réception dans mail" par exemple est une bonne idée de contenu !) et enregistrez-le sous le nom "AR désactivé" sur votre bureau. Mettez-lui une étiquette rouge pour qu’il soit bien visible (bouton droit sur le fichier et option étiquette, choisissez la pastille rouge). Ce fichier servira de témoin de l’état de la fonction de demande d’accusé de réception.

Lancez Utilitaire AppleScript dans /Applications/AppleScript. Laissez ouverte la fenêtre du Finder sur /Applications/AppleScript/Example Scripts/Mail Scripts/, elle va nous servir plus loin. Dans l’Utilitaire AppleScript, activez la fonction "Afficher le menu des scripts dans la barre de menu" et décochez "Afficher de la bibliothèque". Quittez l’Utilitaire AppleScript.

Dans le menu AppleScript qui vient d’apparaître dans barre de menu près de l’horloge à droite, cliquez sur Ouvrir le dossier Scripts puis sur Ouvrir le dossier Script utilisateur. Dans la nouvelle fenêtre du Finder qui vient de s’ouvrir, glisser les fichiers Activer l’accusé et Désactiver l’accusé. Fermez les fenêtres du Finder.

Dans le menu AppleScript, vous pouvez alors directement accéder aux deux fonctions. Avant d’envoyer un courrier électronique, l’utilisateur peut alors choisir d’activer la demande d’accusé de réception ou de la désactiver au choix. Le passage d’une fonction à l’autre ne nécessite pas de relancer Mail. L’utilisateur peut toujours savoir où il en est en regardant le nom du fichier en rouge "AR … " qui se trouve sur le bureau.

Source : Merci à Fabien Conus sur Cuk.ch et au siteMacOSXHints .