0 votos

Applescript para enviar mensajes de correo electrónico a las personas con interés específico y con al menos una dirección de correo electrónico

Estoy intentando escribir un script que filtre las personas de la aplicación Contactos cuya nota incluya una palabra clave específica y que envíe un correo electrónico a aquellas que tengan al menos una dirección de correo electrónico. He escrito el siguiente código pero algo parece estar mal. No he podido averiguar especialmente cómo hacer una comprobación nula de los correos electrónicos.

property mailSubject : "A bulk message"
property mailBody : "Hi %NAME%"
property keyword : "topic"

tell application "Contacts"
    set theRecipients to every person whose ((note contains keyword))
end tell

repeat with i from 1 to number of items in theRecipients
    set theContact to item i of theRecipients
    set theName to name of theContact
    set theEmail to email of theContact
    if (theEmail is not equal to "") then
        set theBody to replaceName(mailBody, theName)
        tell application "Mail"
            set theOutMessage to make new outgoing message with properties {visible:true}
            tell theOutMessage
                make new to recipient at end of to recipients with properties {address:theEmail}
                set sender to "o****.g****@gmail.com>"
                set subject to mailSubject
                set content to theBody
            end tell
        end tell
    end if
end repeat

La ejecución de este script devuelve el siguiente error en la línea set theEmail to email of theContact :

Contacts got an error: Can’t make |email| of person id "2827E13D-907A-41C5-A649-2174D1F61093:ABPerson" into type specifier.

¿Alguna idea?

Önder.

1voto

user3439894 Puntos 5883

No ha incluido el replaceName(mailBody, theName) manipulador por lo que no he podido probar el script Sin embargo, para arreglar el actual error es necesario modificar el código .

Cambios:

repeat with i from 1 to number of items in theRecipients
    set theContact to item i of theRecipients
    set theName to name of theContact
    set theEmail to email of theContact

Para:

repeat with i from 1 to number of items in theRecipients
    set theContact to item i of theRecipients
    tell application "Contacts"
        set theName to name of theContact
        set theEmail to value of email of theContact
    end tell

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