Envio de imagens automaticamente via email para um endereço de email específico


2

Eu tenho um pequeno problema. Talvez você possa me ajudar com isso. Eu estou gravando muitos retratos para um cliente. Como 200 por dia. Eu tenho que enviar e-mail todos os Portrait por email. Uma galeria com todos os retratos em um não é permitida por causa de privacidade. O cliente quer definitivamente e-mails. Eu tentei programar uma ação Applescript / Automator para fazer isso automaticamente.

Meu plano é nomear todos os arquivos assim: name@client.com_2847.jpg e deixar a ação fazer o resto da magia.

Isso funciona, exceto que não consigo extrair o endereço de e-mail do arquivo jpg.

Como faço para extrair o e-mail do arquivo (por exemplo, excluindo os últimos 9 dígitos) e colocá-lo como destinatário?

Eu vi uma pergunta semelhante aqui: Automator - & gt; enviar arquivo para email (do nome do arquivo)

mas por algum motivo eu recebo muitos erros de sintaxe.

obrigado!


Você não poderia simplesmente enviar as imagens para o Dropbox ou Google Drive e enviar um link para elas?
level42

Respostas:


1

Como na sua pergunta, você não incluiu nenhum código, mensagem (ns) de erro ou até mesmo como estava implementando sua solução, apresentarei o seguinte como um exemplo de como eu poderia automatizar a tarefa em questão. Note que enquanto eu olhei para o ligação na sua pergunta, no entanto, já que era para Outlook e você marcou a pergunta com mail.app , Vou ignorar o que estava ligado e prosseguir do zero.

Neste cenário de exemplo, criei uma estrutura de pastas hierárquica em ~ / Fotos , por exemplo. ~ / Fotos / Clientes / Nome / Fotos enviadas por email , e esta é a pasta para a qual eu arrastarei as fotos de destino, que tem a convenção de nomenclatura, por exemplo, name@client.com_2847.jpg ea pasta na qual o Ação de Pasta do Automator fluxo de trabalho será anexado a.

Em Automator :

  • Arquivo & gt; Novo
  • Selecione, Ação de Pasta e clique no Escolher botão.
  • No A ação de pasta recebe arquivos e pastas adicionados ao Choose Folder caixa de listagem , selecione: De outros...
  • Navegue até a pasta de destino, a que a ação deve ser aplicada, selecione-a e clique no Escolher botão.
  • Adicione um Executar o AppleScript açao para o recém-criado Ação de Pasta fluxo de trabalho .
  • Destaque o padrão AppleScript código e exclua.
  • Copie e cole o AppleScript código, mostrado abaixo, no Executar o AppleScript açao .
  • Salve o Ação de Pasta como, por exemplo: Fotos de e-mail para nomear @ cliente
    • Isso será salvo como, por exemplo:
      ~ / Biblioteca / Fluxos de trabalho / Aplicativos / Ações de pasta / Fotos de e-mail para name@client.workflow

Agora, quando você arrasta fotos com a convenção de nomenclatura, por exemplo, name@client.com_2847.jpg para a pasta de destino, por exemplo ~ / Fotos / Clientes / Nome / Fotos enviadas por email , um e-mail para cada foto será criado e o arquivo de destino será anexado. Inicialmente, o e-mail não será enviado automaticamente até que você descomente, remova o -- na frente do -- send theMessage linha de código e salve as alterações. Inicialmente, isso é comentado para que você possa testar com um arquivo e obter sua configuração de assunto e mensagem para atender às suas necessidades. Eu usaria um arquivo que tenha seu endereço de e-mail para fins de teste, fazendo um no início e vários ao mesmo tempo.

A mensagem de email sujeito e conteúdo são inicialmente definidos como "Retratos" e Foto anexada. "respectivamente, como espaços reservados. Além disso, há outra linha de comentários código , -- delay 2, acima de -- send theMessage linha de código que você pode precisar / desejar implementar se adicionar um grande número de arquivos ao mesmo tempo à pasta de destino que possui a Ação de Pasta anexada, pois o envio rápido pode causar problemas. Note que o valor do delay comando pode ser necessário ajustá-lo conforme apropriado para acomodar as condições e você terá que fazer alguns testes para ver o que funciona para você. Embora tenha feito alguns testes, usei um arquivo muito pequeno (3 KB) que eu repliquei e nomei sequencialmente para fins de teste. Eu suponho que suas fotos serão muito maiores em tamanho.

AppleScript código :


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

Observe que, conforme codificado, se um arquivo cair na pasta de destino, a pasta à qual a Ação de pasta está anexada não está de acordo com a convenção de nomenclatura de, name@client.com_2847.jpg , então nenhum email para esse arquivo deve ser criado, a menos que a parte do nome do arquivo que precede o sublinhado contenha o símbolo @ e quaisquer outros caracteres. Em outras palavras, o único erro ao verificar o código, como é, tentativas de validação é que o nome do arquivo contém um endereço de e-mail válido apenas no local se tiver um sublinhado e um símbolo @, então assume que o nome do arquivo está em ex. name@client.com_2847.jpg . Uma verificação mais rigorosa de erros pode ser codificada, mas deixarei isso para você se o que for apresentado não for adequado.

Além disso, outras formas de verificação geral de erros podem ser implementadas, ou seja, garantir que o arquivo foi realmente anexado antes do envio, etc., no entanto, esta resposta deve ser um exemplo simples, não necessariamente uma solução totalmente codificada. O ônus está em você para garantir que você implemente a verificação de erros apropriada, conforme as condições garantam.

Como você pode ser capaz de dizer pelas imagens abaixo, eu escrevi e testei isso em um ambiente pré OS X 10.9, OS X 10.8.6 para ser específico e eu tenho "Ativar acesso para dispositivos de assistência" verificada em Acessibilidade preferências. No OS X 10.9 e posterior, incluindo a versão mais recente do macOS, Sierra, talvez seja necessário adicionar Enviar e ou Automator para Preferências do Sistema & gt; Segurança & amp; Privacidade & gt; Privacidade & gt; Acessibilidade para que o Ação de Pasta trabalhar. Não estou em condições de testar nessas versões no momento, mas se não funcionar para você, adicione esses aplicativos de acordo.

Automator Folder Action Image

Email Message Image

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.