Puisque dans votre question, vous n'avez pas inclus de code, de message(s) d'erreur ou même la façon dont vous avez mis en œuvre votre solution, je vais vous proposer ce qui suit comme exemple de la façon dont je pourrais automatiser la tâche à accomplir. Notez que pendant que je regardais le lien dans votre question, néanmoins, puisqu'il s'agissait de Outlook et vous avez marqué la question avec mail.app Je vais donc ignorer ce qui a été lié et recommencer à zéro.
Dans cet exemple de scénario, j'ai créé une structure de dossier hiérarchique sous le nom de ~/Photos par exemple ~/Photos/Clients/Nom/Photos envoyées par e-mail et c'est le dossier dans lequel je vais faire glisser les photos cibles, qui ont la convention d'appellation par exemple. name@client.com_2847.jpg et le dossier dans lequel l Action sur les dossiers dans Automator flux de travail seront attachés.
Sur Automator :
-
Fichier > Nouveau
- Sélectionnez, Action des dossiers et cliquez sur le Choisissez bouton.
- En el L'action Dossier reçoit les fichiers et les dossiers ajoutés à Choisir un dossier. boîte de liste sélectionnez : Autre...
- Naviguez jusqu'au dossier cible, celui auquel l'action doit être appliquée, sélectionnez-le et cliquez sur l'icône de l'action. Choisissez bouton.
- Ajouter un Exécuter AppleScript action à la nouvelle Action des dossiers flux de travail .
- Mettez en évidence le par défaut AppleScript code et le supprimer.
- Copiez et collez le AppleScript illustré ci-dessous, dans le fichier Exécuter AppleScript action .
- Sauvegarder le Action des dossiers comme, par exemple : Envoyez vos photos par courriel à nom@client
- Cela sera enregistré comme, par exemple :
~/Bibliothèque/Workflows/Applications/Folder Actions/Email Photos to name@client.workflow
Désormais, lorsque vous faites glisser des photos ayant la convention d'appellation, par ex. name@client.com_2847.jpg vers le dossier cible, par exemple ~/Photos/Clients/Nom/Photos envoyées par e-mail Un courriel sera créé pour chaque photo et le fichier cible sera joint. Initialement, l'email ne sera pas envoyé automatiquement jusqu'à ce que vous décommentez, enlevez le champ --
de l'avant de la -- send theMessage
ligne de code et enregistrez les modifications. Cette opération est initialement commentée afin que vous puissiez tester avec un seul fichier et configurer votre objet et votre message en fonction de vos besoins. J'utiliserais un fichier contenant votre adresse e-mail à des fins de test, en en faisant un d'abord, puis plusieurs à la fois.
Le message électronique sujet y contenu sont initialement définis comme "Portraits" et "Photo attachée" respectivement, en tant qu'emplacements. De plus, il y a une autre ligne de commentaires code , -- delay 2
au-dessus de la -- send theMessage
ligne de code que vous devrez ou voudrez peut-être mettre en œuvre si vous ajoutez un grand nombre de fichiers en même temps au dossier cible auquel l'action Dossier est attachée, car un envoi rapide peut causer des problèmes. Notez que l'action valeur de la delay
commande Il peut être nécessaire d'ajuster le niveau plus élevé pour s'adapter aux conditions et vous devrez faire des essais pour voir ce qui fonctionne pour vous. Bien que j'aie fait quelques tests, j'ai utilisé un très petit fichier (3 Ko) que j'ai reproduit et nommé séquentiellement à des fins de test. Je suppose que vos photos seront d'une taille beaucoup plus importante.
AppleScript code :
property theMessageSubject : "Portraits"
property theMessageContent : "Photo attached."
on GetTheRecipientNameFrom(theFilename)
-- # Get the filename portion of the alias passed to the Folder Action.
set AppleScript's text item delimiters to ":"
set theFilename to last item of text items of theFilename
set AppleScript's text item delimiters to ""
-- # Make sure the filename contains both an '_' and "@".
-- # This doesn't guarantee a properly formed email address,
-- # however it does attempt to validate what was passed as one.
if theFilename contains "_" and theFilename contains "@" then
set AppleScript's text item delimiters to "_"
set theFilename to first item of text items of theFilename
set AppleScript's text item delimiters to ""
return theFilename
else
return ""
end if
end GetTheRecipientNameFrom
on run {input, parameters}
set fileCount to (count of items of input)
set i to 1
repeat fileCount times
set theMessageAttachment to item i of input
set theRecipient to GetTheRecipientNameFrom(theMessageAttachment as string)
if theRecipient is not equal to "" then
tell application "Mail"
activate
set theMessage to make new outgoing message with properties {visible:true, subject:theMessageSubject, content:theMessageContent & linefeed & linefeed}
tell theMessage
make new to recipient at end of to recipients with properties {address:theRecipient}
end tell
tell content of theMessage
make new attachment with properties {file name:theMessageAttachment} at after last paragraph
end tell
set i to i + 1
-- delay 2
-- send theMessage
end tell
else
set i to i + 1
end if
end repeat
end run
Notez que tel qu'il est codé, si un fichier déposé dans le dossier cible, le dossier auquel l'Action Dossier est attachée, ne se conforme pas à la convention d'appellation de par ex. name@client.com_2847.jpg alors aucun courriel pour ce fichier ne doit être créé, à moins que la partie du nom de fichier précédant le trait de soulignement ne contienne le symbole @ et tout autre caractère. En d'autres termes, le seul contrôle d'erreur que le code, tel qu'il est, tente de valider est que le nom de fichier contient une adresse électronique valide, en partant du principe que s'il comporte à la fois un trait de soulignement et le symbole @, il suppose que le nom de fichier est conforme à, par exemple, la norme suivante name@client.com_2847.jpg . Une vérification plus stricte des erreurs pourrait être codée, mais je vous laisse le soin de le faire si ce qui est présenté n'est pas adéquat.
En outre, d'autres formes de contrôle d'erreurs générales pourraient être mises en œuvre, par exemple en vérifiant que le fichier a bien été joint avant l'envoi, etc. Toutefois, cette réponse se veut un simple exemple, et pas nécessairement une solution entièrement codée. Il vous incombe de vous assurer que vous mettez en œuvre un contrôle d'erreur approprié en fonction des conditions.
Comme vous pouvez le voir sur les images ci-dessous, j'ai écrit et testé ceci dans un environnement pré OS X 10.9, OS X 10.8.6 pour être précis, et j'ai coché la case "Activer l'accès pour les dispositifs d'assistance". Accessibilité préférences. À partir de la version 10.9 d'OS X, y compris la dernière version de MacOS, Sierra, vous devrez peut-être ajouter les éléments suivants Courrier et ou Automator a Préférences du système > Sécurité et confidentialité > Vie privée > Accessibilité afin que le Action des dossiers pour travailler. Je ne suis pas en mesure de tester ces versions pour le moment, mais si cela ne fonctionne pas pour vous, ajoutez ces applications en conséquence.