0 votos

Envío de correos electrónicos con el programa Apple Mail utilizando AppleScript.

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

Esta es mi lista de clientes y quiero enviarles un correo electrónico. Desafortunadamente no tengo esta lista en un autorespondedor así que tengo que enviar los emails 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 va todo?

Hola Ken

Ha pasado tiempo desde que te vendí ese widget defectuoso de China. Si necesitas más elctrónica defectuosa estoy aquí para ti. Sólo dame una llamada al xxx-xxx-xxxx.

Atentamente

Ken

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

Después de enviar el mensaje quiero que el script espere 60 segundos. Luego envíe otro mensaje de 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?

¿Hay alguna forma mejor de hacer lo que intento?

Gracias

4voto

Bibou Puntos 520

Aquí 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,blah@blah.com
Mike,blahblah@blahblah.com"

--> 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

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X