Ayuda con un simple script de correo electrónico para OSX

2

Me encantaría que alguien me ayudara a crear un Applescript para enviar algunos correos electrónicos. He visto algunos ejemplos, pero no estoy seguro de poder adaptarlos a mis propias necesidades.

Necesito enviar el mismo correo electrónico (asunto y cuerpo), uno a la vez, a una lista de direcciones en un archivo .csv. Estoy usando Apple Mail 5.3 y OSX 10.7.5

Muchas gracias de antemano a cualquiera que esté dispuesto a ayudar.

Esto es lo que tengo hasta ahora.

    tell application "Mail"

    tell (make new outgoing message)
        set theAddress to "xxxx"
        make new to recipient at beginning of to recipients with properties {address:theAddress}
        set subject to "xxxx"
        set content to "xxxx"
        send
    end tell
end tell

Necesito configurar la Dirección a la celda A1 en mi hoja de Excel. ¿Cómo lo apunto allí? Una vez que el correo electrónico se haya enviado, debo apuntarlo a la celda A2 ... y así sucesivamente.

    
pregunta Will 17.12.2014 - 18:14

3 respuestas

0

La forma más sencilla y rápida de hacer esto en otros idiomas sería simplemente soltar cada una de sus columnas de excel en una lista (matriz) y luego tener todo en un bucle y creará el correo electrónico para completar la información y luego envíe el correo electrónico, vuelva al principio y comience nuevamente con los valores de cada una de las matrices en [1] y así sucesivamente desde su lista. No es la forma más profesional o eficiente, pero para tus propósitos funcionaría. Si puedes implementar eso, entonces adelante. Si no, lo escribiré cuando vuelva a mi escritorio.

---- edit ----

Edité el script escrito por primera vez en esta publicación: enlace

para lograr este script. Codifico en Java principalmente, por lo que esto podría no ser perfecto, así que quizás alguien pueda venir y modificarlo. OP debe pasar e ingresar sus propios valores para las cosas escritas en mayúsculas. Además, la hoja de Excel debe estar en la forma en que se encuentra el OP de la hoja de Excel de enlaces

set {firstName, eAddress} to getData()

repeat with i from 1 to count firstName
tell application "Mail"
    activate
    set mymail to make new outgoing message at the beginning of outgoing messages with properties {subject:"INSERT SUBJECT HERE"}
    tell mymail
        make new to recipient at beginning of to recipients with properties {address:item i of eAddress}
--The next line will start each email with Hi firstName and then carriage return to the text you fill in below

        set content to "Hi " & item i of firstName & "

INSERT BODY OF EMAIL HERE"
    end tell
    --show message window (otherwise it's hidden)
    set visible of mymail to true
    --bring Mail to front
    activate
    send mymail
end tell
end repeat


on getData()
set colA to {}
set colB to {}
tell application "Microsoft Excel"

    activate
    tell active sheet
        set lastRow to first row index of (get end (last cell of column 1) direction toward the top)

        repeat with i from 3 to lastRow
            set end of colA to (value of range ("A" & i))
            set end of colB to (value of range ("B" & i))
        end repeat
    end tell
end tell

return {colA, colB}
end getData    
    
respondido por el Jake Stewart 17.12.2014 - 19:37
0

Básicamente, debes comenzar leyendo el archivo XLS con AppleScript (y luego tell "Mail" para cada dirección que encuentres). Como titular puedes consultar

y sube desde allí.

    
respondido por el nohillside 17.12.2014 - 19:39
0

Utilizo esto para enviar llamadas para documentos. Envía lotes de 90 correos electrónicos en BCC desde una lista de 1000 correos electrónicos. Es un AppleScript.

set title to "Call for papers conference XXX"
set body to read "/Users/ber/Desktop/bod_of_email.txt" as «class utf8»
set addresses to read "/Users/ber/Desktop/mail/email_list_one_email_per_row.txt" as «class utf8»
set bccRecipients to {}
set c to 0

repeat with e in paragraphs of addresses
    if length of e is greater than 10 then
            copy e to the end of the bccRecipients
        set c to c + 1
        if c = 90 then
            tell application "Mail"
                activate
                tell (make new outgoing message)
                    set visible to true
                    make new recipient at end of to recipients with properties {address:"[email protected]"}
                    repeat with thisRecipient in bccRecipients as list
                        make new bcc recipient at end of bcc recipients with properties {address:thisRecipient}
                    end repeat
                    set subject to title
                    set content to body
                    send
                    delay 3
                end tell
            end tell
            set bccRecipients to {}
            set c to 0
        end if
    end if
end repeat
    
respondido por el Jose Berengueres 29.05.2015 - 09:42

Lea otras preguntas en las etiquetas