1 votes

Envoi automatique d'images par courrier électronique à une adresse spécifique

J'ai un petit problème. Vous pouvez peut-être m'aider. Je réalise de nombreux portraits pour un client. Environ 200 par jour. Je dois envoyer chaque portrait par courrier électronique. Une galerie avec tous les portraits en un seul n'est pas autorisée pour des raisons de confidentialité. Le client veut des emails précis. J'ai essayé de programmer une action Applescript/Automator pour faire cela automatiquement.

J'ai l'intention de nommer tous les fichiers comme suit : name@client.com_2847.jpg et de laisser l'action faire le reste de la magie.

Cela fonctionne à peu près, sauf que je ne suis pas capable d'extraire l'adresse e-mail du fichier jpg.

Comment extraire l'email du fichier (par exemple en supprimant les 9 derniers chiffres) et l'insérer comme destinataire ?

J'ai vu une question similaire ici : Automator -> envoyer le fichier à l'email (à partir du nom du fichier)

mais pour une raison quelconque, j'obtiens de nombreuses erreurs de syntaxe.

Merci !

1voto

user3439894 Points 52496

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.

Automator Folder Action Image

Email Message Image

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