Enviando correos electrónicos con el programa Apple Mail usando AppleScript.

-1

No conozco AppleScript en absoluto, así que gracias de antemano por la ayuda ofrecida en esta pregunta. Estoy en mi computadora portátil Macbook Pro con la última versión de OSX instalada. Tengo un archivo csv que se ve así: Nombre, Email Ken, blah @ blah.com Mike, blahblah @ blahblah.com

Esta es mi lista de clientes y deseo enviarles un correo electrónico. Lamentablemente, no tengo esta lista en una respuesta automática, por lo que tengo que enviar los correos electrónicos uno por uno.

Quiero escribir un AppleScript que procese mi archivo .csv un registro a la vez y envíe un mensaje. El mensaje sería algo como esto:

Asunto: ¿Cómo te va?

Hola Ken

Hace mucho tiempo que no te vendí ese widget defectuoso de China. Si necesitas más electrónica defectuosa, estoy aquí para ti. Solo dame una llamada al xxx-xxx-xxxx.

Sinceramente

Ken

El AppleScript leerá el nombre y la dirección de correo electrónico del archivo un registro a la vez y enviará este correo electrónico, completando el nombre y la dirección de correo electrónico, utilizando el programa estándar de correo de Apple.

Después de enviar el mensaje, quiero que el script espere 60 segundos. A continuación, envíe otro correo electrónico.

Esto debe suceder hasta que se llegue al final del archivo.

Mi primera pregunta ... ¿Es esto posible? Si es posible, ¿cómo lo hago?

¿También hay una mejor manera de hacer lo que estoy tratando de hacer?

Gracias

    
pregunta codingguy3000 13.03.2013 - 16:04

1 respuesta

3

Aquí hay un AppleScript que hace lo que quieres:

property secsBetweenMails : 60 -- seconds
property csvHasHeaders : true
property mailSubject : "How’s it going?"
property mailBody : "Hi %NAME%

It’s been a while since I sold you that defective widget from China.
If you need more defective elctronics I’m here for you.
Just give me a call at xxx-xxx-xxxx.

Sincerely

Ken"

set csvData to "FirstName,Email
Ken,[email protected]
Mike,[email protected]"

--> or:
-- set csvData to read file "path:to:file.csv"

set countSent to 0

-- Parse .csv files with Applescript
-- Adapted from : http://macscripter.net/viewtopic.php?id=19676
set csvEntries to paragraphs of csvData
if csvHasHeaders then
    set startAt to 2
else
    set startAt to 1
end if
repeat with i from startAt to count csvEntries
    set {theName, theEmail} to parseCsvEntry(csvEntries's item i)
    set theBody to replaceName(mailBody, theName)
    tell application "Mail"
        set theNewMessage to make new outgoing message with properties {subject:mailSubject, content:theBody, visible:true}
        tell theNewMessage
            make new to recipient at end of to recipients with properties {address:theEmail}
            send
            set countSent to countSent + 1
        end tell
    end tell
    delay secBetweenMails
end repeat
display dialog (countSent & " mails sent.")

to parseCsvEntry(csvEntry)
    set AppleScript's text item delimiters to ","
    set {theName, theEmail} to csvEntry's text items
    set AppleScript's text item delimiters to {""}
    return {theName, theEmail}
end parseCsvEntry

to replaceName(aBody, aName)
    set AppleScript's text item delimiters to "%NAME%"
    set parts to aBody's text items
    set newBody to item 1 of parts & aName & item 2 of parts
    set AppleScript's text item delimiters to ""
    return newBody
end replaceName
    
respondido por el Bibou 13.03.2013 - 16:49

Lea otras preguntas en las etiquetas